如何使用 fs.appendFile() 追加文件但不写入另一个 JSON 对象
Posted
技术标签:
【中文标题】如何使用 fs.appendFile() 追加文件但不写入另一个 JSON 对象【英文标题】:How to append a file using fs.appendFile() but not write another JSON object 【发布时间】:2020-07-15 16:39:57 【问题描述】:我正在尝试使用 fs.appendFile() 在我的 json 文件中写入一个键值对。
这是我的代码:
router.post('/add', function(req, res)
var article =
title: req.body.title,
content: req.body.content
var articleData = ;
articleData[article.title] = article.content;
var textData = JSON.stringify(articleData, null, 2);
fs.appendFile('model/text.json', textData, 'utf8', finished);
function finished ()
console.log('Finished writing');
);
但在我的text.json
文件中,我只得到这个:
"test1": "test1"
"test2": "test2"
我无法像这样附加它:
"test1": "test1",
"test2": "test2"
【问题讨论】:
【参考方案1】:首先您需要读取您的文件,然后处理 json 数据以将您的内容添加到其中。 您的第二步将是写入文件。您可以参考以下示例。
fs.readFile('model/text.json', 'utf8', function readFileCallback(err, data)
if (err)
console.log(err);
else
objData = JSON.parse(data); //now it an object
objData.test2 = 'test2'; //add/append desired data
jsonData = JSON.stringify(objData); //convert it back to json
fs.writeFile('model/text.json', jsonData, 'utf8', callback); // write it back
);
【讨论】:
以上是关于如何使用 fs.appendFile() 追加文件但不写入另一个 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章
Node.js——fs模块(文件系统),创建删除目录(文件),读取写入文件流