我有一个包含一些信息的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?