javascript - 如何在节点中使用导出的 api 端点并表达
问题描述
我试图更好地理解 express 以及它如何使用不同的端点。
我看到了一个端点示例,它读取了一个像这样使用的 json 文件。
const fs = require('fs');
const path = require('path');
export default app => {
app.get('/api/price', (req, res) => {
fs.readFile(path.resolve(__dirname, './price.json'), (err, resp) => {
if (err) {
res.send(400, 'ERROR');
}
res.send(resp);
});
});
};
然后将其导入到 server.js 文件中,如下所示。如您所见,它是作为价格 api 导入的。
import express from 'express';
import priceApi from './priceapi';
const app = express();
priceApi(app)
app.listen(3000, () => {
console.log("Listening on PORT 3000");
});
我的问题是如何使用这个 priceApi,特别是 `priceApi(app) 并访问存储在 JSON 文件中的信息并从它在 server.js 中引用的端点的 JSON 文件输出信息?
解决方案
为了不必在每个请求上加载文件,请在应用程序启动期间加载一次 json 文件。然后公开一个新端点并提供 json:
import express from 'express';
import priceApi from './priceapi';
const app = express();
const prices = require('./path/to/prices.json');
app.get('/api/price', (req,res) => {
res.json(prices); // does not necessarily need to be this, you can also map/filter stuff of the prices-json and only return this data
});
app.listen(3000, () => {
console.log("Listening on PORT 3000");
});
推荐阅读
- nativescript-vue - Nativescript-vue:如何更改日期选择器颜色?
- javascript - 取消 setTimeout()
- .net - IIS:在 IIS 上更新我的 .net Web 服务后出现错误“读取服务错误”
- html - 如何根据跨度内的文本获取跨度的以下元素
- sql - SQL-SERVER 的 Identity 字段有问题
- python - 在pycharm中调试一个函数
- c++ - 在 Mac 上使用 MoltenVk/Vulkan 获取 VK_ERROR_LAYER_NOT_PRESENT
- video - 使用 ffmpeg 转换视频时浏览器挂起
- angular - 为不同的 Angular 模块分离 SCSS
- c# - 组合 2 个 dbExpressions