[英]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 个参数: req
和res
:
- 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.