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

あなたは欠席していました});最後に。また、私はそれをutf8に変更したので、 'r'を認識しませんでした。このスニペットを実行しようとすると、ヌルのプロパティプッシュを読み取ることができません。 @Barmar –

+0

これは 'JSON.parse()'が失敗していることを意味します。したがって、jsonファイルの内容に問題があります。 – Barmar

+0

スニペットの例ではどのように設定する必要がありますか?私は空白の配列を試しました。 –

関連する問題