如果文件已更改,如何调用fs.readFile

时间:2018-03-28 15:06:07

标签: javascript node.js express

我有一个包含一些信息的json数据,数据的内容是从express js中的post方法路由派生的。如果post方法获取新数据,fs.writeFile将删除所有数据内容并写入新数据。

我希望在fs.writeFile完成写入新数据后,调用fs.readFile自动读取新数据。

const express = require('express');
const bodyParser = require('body-parser');
const fs = require('fs');
const path = require('path');
const app = express();

const DATA_FILE = path.join(__dirname, 'data.json');

app.use(bodyParser.json());

app.post('/data', (req, res) => {
    // delete all content on data.json file
    fs.writeFile(DATA_FILE, '', (err) => {
        if (err) throw err;
    });
    const newData = req.body.data;
    // write new data to data.json file
    fs.writeFile(DATA_FILE, JSON.stringify(newData, null, 4), () => {
        res.json(newData);
        console.log('New data added');
    });
});

// read new data from data.json file
fs.readFile(DATA_FILE, (err, data) => {
    if (err) throw err;
    const readNewData = JSON.parse(data);
    console.log(readNewData);
});

module.exports = app;

fs.readFile位于post方法之外,因为我想在快速js启动时自动运行fs.readFile,不必等待post方法的操作。

如何在fs.writeFile写完新数据后自动调用fs.readFile?

0 个答案:

没有答案