繁体   English   中英

如何让我的 JSON 在浏览器中返回?

[英]How can I get my JSON to return in the browser?

我是第一次使用 Node 构建 API,但在某些方面有点卡住了。

我有以下文件:

我的路线, routes/index.js

const express = require('express');
const router = express.Router();

const transactionsController = require('../controllers/transactionsController');
const ordersController = require('../controllers/ordersController');
const ordersCountController = require('../controllers/ordersCountController');

router.get('/transactions', transactionsController);
router.get('/orders', ordersController);
router.get('/orders_count', ordersCountController);

module.exports = router;

我的控制器, controllers/ordersCountController.js

const ordersCountService = require('../services/ordersCountService');

const ordersCountController = async () => {

    try {
        const data = await ordersCountService();
        console.log(data);
        return data;
    } catch(err) {
        console.log(err);
    }
};

module.exports = ordersCountController;

我要从外部 API services/ordersCountService.js获取的服务

const fetch = require('node-fetch');

const ordersCountService = async () => {
    const URL = ....;

    const settings = { method: 'Get'};
    const res = await fetch(URL, settings);
    if (!res.ok) throw new Error('Unable to retrieve data');
    return await res.json();
}

module.exports = ordersCountService;

如何将 JSON 传递给浏览器?

我一直在尝试一些东西——你会注意到返回数据; - 但我不知道如何返回 JSON,以便当有人访问 ourdomain.com/api/orders_count 时它会显示在浏览器中。

关于我在这里做错了什么的任何建议? 如果我在这里遗漏了一些完全明显的东西,我仍然是 JS 的新手,所以很抱歉。

谢谢大家的时间。 如果有什么我可以添加的清楚,请不要犹豫,问。

在您的控制器中, ordersCountService应该有 2 个参数: reqres

  • req 对象表示 HTTP 请求并具有请求查询字符串、参数、正文和 HTTP 标头的属性。
  • res 对象表示 Express 应用在收到 HTTP 请求时发送的 HTTP 响应。

在这种情况下,您的控制器应该是:

const ordersCountController = async (req, res) => {

    try {
        const data = await ordersCountService();
        console.log(data);
        res.json({data})
    } catch(err) {
        console.log(err);
    }
};

保存,打开express服务器,在浏览器中输入路由url,你会看到json格式。 您可以在本文中找到有关 Express 的更多信息。 Express 用示例解释 - 安装、路由、中间件等

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM