/ / Node.jsおよびSocket.ioを使用してJSONファイルにキー+値を書き込む方法-javascript、json、node.js、socket.io

Node.jsとSocket.ioを使用してJSONファイルにkey +値を書き込む方法 - javascript、json、node.js、socket.io

Socket.ioとNode.jsでスコアボードに取り組んでいます。次に、参加者のスコアをJSONファイルに保存します。

これが私がやろうとしたことです:

socket.on("part score", function(name, score){
let jdata = fs.readFileSync("participants.json");
let json = JSON.parse(jdata);
console.log(name, score);
//outputs: foo 10

fs.writeFile("participants.json", JSON.stringify(json.jury1.push({name: score}, null, 2)), function(){
console.log("name added: "+name+" value added: "+score);
});
});

私のJSONファイルは次のようになります。

{"jury1": []}

上記のコードを実行すると、スコアが10のときにJSONファイルが「3」に変わります。また、実行後にJSONファイル内のすべてが失われます。

Jury1にキーと値を適切に追加するにはどうすればよいですか? すでにありがとう!
ps:名前とスコアはクライアント側のスクリプトを介して送信されます

回答:

回答№1は0

Jury1は配列ですか?

私はあなたがしたいのではなく、あなたが望むすべてのデータを解析する必要があると思います:

JSON.stringify(json.jury1.push({name: score}, null, 2)

次のように試してみてください

jury1 with the score you need var data = JSON.stringify(jury1)


回答№2の場合は0

すでにjsonファイルがあります。なぜJSON.parseを再度行うのですか?それが問題だと思う。 json.jury1の内容を印刷して同じことを確認できますか?

また、エラーがある場合は、fs.writeFile()の結果を確認してください

fs.writeFile("participants.json", JSON.stringify(json.jury1.push({name: score}, null, 2)), function(err){
console.log(err, "name added: "+name+" value added: "+score);
});