2016-08-11 51 views
-2

我需要将我的JSON数据附加到JSON文件内的数组。它正在成功追加。然而,它并不追加在JSON文件Node.JS将JSON附加到数组

这里是我的NODE

if (req.method == 'POST') { 
    req.on('data', function (chunk) { 
     fs.writeFile("comments-data.json", chunk, {'flag':'a'}, function(err) { 
      if(err) { 
       return console.log(err); 
      } 

      console.log("The file was saved!"); 
     }) 
    }); 
    res.end('{"msg": "success"}'); 
}; 

我怎么能告诉它只是括号内追加括号中?

+1

括号?你在说什么? – SLaks

+5

你不能只追加到一个JSON文件,并期望它合并到数组中。您需要读取该文件,将JSON解析为数组,将新元素推入数组,将数组字符串化,然后将其写入文件。 – Barmar

回答

1

您必须解析请求和文件中的JSON,将最需要的数据压入阵列,然后将其写回到文件。

if (req.method == 'POST') { 
    req.on('data', function(chunk) { 
     var element = JSON.parse(chunk); 
     fs.readFile("comments-data.json", 'r', function(err, json) { 
      var array = JSON.parse(json); 
      array.push(element); 
      fs.writeFile("comments-data.json", JSON.stringify(array), "w", function(err) { 
       if (err) { 
        console.log(err); 
        return; 
       } 
       console.log("The file was saved!"); 
      }); 
     }); 
     res.end('{"msg": "success"}'); 
    }); 
} 
+0

你错过了一个});最后。它也不承认'r',所以我将它改为utf8。当我尝试运行此代码段时,我收到无法读取null的属性推送。 @Barmar –

+0

这意味着'JSON.parse()'失败,所以json文件的内容有问题。 – Barmar

+0

应该如何设置你的代码片段的例子?我甚至尝试过一个空白数组。 –