【问题标题】:How to append a file using fs.appendFile() but not write another JSON object如何使用 fs.appendFile() 追加文件但不写入另一个 JSON 对象
【发布时间】: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"
}

【问题讨论】:

    标签: node.js json express filesystems fs


    【解决方案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 
    }});
    

    【讨论】:

      猜你喜欢
      • 2017-10-17
      • 2013-08-15
      • 2017-04-02
      • 2021-07-29
      • 1970-01-01
      • 2020-11-14
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      相关资源
      最近更新 更多