簡體   English   中英

如何使用Node.js和Socket.io將鍵+值寫入JSON文件

[英]How to write key + values to a JSON file with Node.js and 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:名稱和分數通過客戶端腳本發送

Jury1是一個數組嗎?

我認為您應該解析所需的所有數據,而不要這樣做:

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

嘗試類似:

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

您已經有一個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);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM