【发布时间】:2018-05-12 09:16:02
【问题描述】:
新手要表达,我有一个包含 db.json 文件的文件夹,它每 11 秒被一个新的 db.json 替换。让 express.js 服务它以便在 api 调用上显示新内容的最佳方式是什么?这是我目前所拥有的:
const express = require('express');
const router = express.Router();
router.get('/api/items', (req, res) => {
let dbPath = require('./data/db.json');
res.send(JSON.stringify(dbPath));
});
db.json 看起来像这样
[{"recordType": "E90", "count": "55", "space": "4" },
{"recordType": "A48", "count": "40", "space": "5" }, ....]
问题:下次调用 api 时我没有看到更新的值。
【问题讨论】:
-
这应该适合你,不是吗?
-
为什么 JSON 文件每 11 秒被替换一次?
-
最好的方法是根本不在每个路由请求上加载文件。磁盘读/写通常很慢。你最好使用像 Redis / MongoDB 这样的数据库(取决于你的需要)。 Redis 或 MongoDB 等数据库将常用资产缓存在 RAM 中,因此您可以期望它更快。
-
@kentor express sendFile 已经使用流传输文件
-
此设置无效。那么拥有数据库是唯一的选择吗?
标签: javascript json node.js rest express