我刚开始学习nodejs。我目前正在使用套接字并进行聊天程序。
我想将整个聊天内容保存到json文件中。目前我的代码是:
socket.on('chat', function (data) {
message = {user : data.message.user, message : data.message.message};
chat_room.sockets.emit('chat', {message: message});
jsonString = JSON.stringify(message);
fs.appendFile("public/chat.json", jsonString, function(err) {
if(err) {
console.log(err);
} else {
console.log("The file was saved!");
}
});
});
这目前工作正常,但是用文件写的json是错误的。
这给了我一个错误的json
{"user":"niraj","message":"hw r u?"}{"user":"ntechi","message":"hello"}{"user":"ntechi","message":"hw r u?"}
触发消息时会调用上面的代码。我希望json采用这种格式
{"user":"awd","message":"hw r u?","user":"ntechi","message":"hello","user":"ntechi","message":"hw r u?"}
任何人都可以帮助我吗?提前致谢
答案 0 :(得分:11)
创建了第一组错误的JSON,因为每次收到消息时都会向文件追加一段JSON。
第二组JSON也是错误的 - 每个属性名称必须是唯一的。
大概你想要这样的东西:
[
{"user":"niraj","message":"hw r u?"},
{"user":"ntechi","message":"hello"},
{"user":"ntechi","message":"hw r u?"}
]
在这种情况下,您需要使用的逻辑是:
push
消息对象到数组的末尾