2017-10-17 88 views
2

我试图在json文件中推送名称。我试着这样做:用Node.js编写JSON

socket.on('create json', function(data){ 
    var data = JSON.stringify(Data, null, 2); 
    fs.writeFile('participants.json', data) 
    console.log(data); 
}); 

这是只输出数据,我已经发送和结果:

{ 
    "type": "Buffer", 
    "data": [34,69,120,97,109,112,108,101,32,110,97,109,101, 34 ] 
} 

当我在写它删除一切并提出文件。在 我正在寻找一种方式来写:

{ 
"names":["name1", "name2", "name3"] 
} 

就如何解决和写入任何想法?

帮助非常感谢!

+3

我仍然无法理解您的问题,请阅读(5次)去读取其他5次 –

+2

难道仅仅是一个坏榜样,还是你真的有'data'作为参数,'data'作为一个变量, 'Data'? –

+0

不确定,可能是你想追加现有文件中的数据,以追加模式打开该文件,请参考https://stackoverflow.com/questions/33418777/node-js-write-a-line-into-a -txt文件 – LogicBlower

回答

0

您必须再次读取您的文件,解析JSON,将新的结果附加到数组,将其转换回字符串并再次保存。

var fs = require('fs') 

fs.readFile('participants.json', function (err, data) { 
    var json = JSON.parse(data); 
    json.name = ["name1", "name2", "name3"]; 
    fs.writeFile("results.json", JSON.stringify(json)) 
}) 
+0

感谢兄弟这对我工作!现在我将弄清楚如何从输入字段中获取名字!非常感谢! – Sylent

+0

你能帮我把值存入数组吗?我从输入字段获取值。对不起,即时通讯新的JS :) – Sylent