我试图将用户详细信息从注册表单附加到json文件,以便用户详细信息可用于身份验证。问题是我无法以正确的格式附加到json文件。到目前为止我尝试的代码是,
var filename= "./user_login.json";
var contents = fs.readFileSync(filename);
var jsonContent = JSON.parse(contents);
//sample data
var data =[
{
"try" : "till success"
}
];
jsonContent.push(data);
fs.writeFileSync(filename,jsonContent);
我尝试了通过谷歌搜索找到的不同方法,到目前为止没有任何工作。我希望数据以正确的格式存储。大多数时候我得到这个错误就像对象没有推送功能。那么替代方案是什么呢? 我正在寻找的正确格式是,
[
user1-details : {
//user1 details
},
user2-deatils : {
}//So on
]
答案 0 :(得分:2)
对象没有推送功能,数组有。你的json也是无效的,它应该是一个数组:
[ // here
{
//user1 details
},
{
//So on
}
] // and here
现在,您可以使用push()。但是,data
是一个数组,如果你想在你的json文件中有一个对象数组,它应该是一个简单的对象:
var data = {
"try" : "till success"
};
在将对象写回文件之前,您还必须对该对象进行字符串化:
fs.writeFileSync(filename, JSON.stringify(jsonContent));
你应该考虑使用类似node-json-db的东西,它会负责读/写文件,它会为你提供辅助函数(save()
,push()
...)