繁体   English   中英

从文件 express js 提供 json

[英]Serving json from a file express js

新手要表达,我有一个文件夹,里面有一个 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 调用时看不到更新的值。

尝试这个:

const fs = require('fs');

router.get('/api/items', (req, res) => {

    fs.readFile('./data/db.json', (err, json) => {
        let obj = JSON.parse(json);
        res.json(obj);
    });

});

希望这可以帮助

Expressjs通过res.json()有一种更简洁,更直观的方法。

在您的情况下:

router.get('/api/items', (req, res) => {
  let jsonObj = require('./data/db.json');
  res.json(jsonObj);
});

注意!

第一次加载模块后将对其进行缓存。 这意味着(除其他事项外)每次对require('foo')的调用都将返回完全相同的对象,如果它可以解析为相同的文件。

暂无
暂无

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

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