2016-08-11 93 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

應該如何設置你的代碼片段的例子?我甚至嘗試過一個空白數組。 –