对象在节点js

时间:2016-04-03 05:38:04

标签: javascript json node.js

我试图将用户详细信息从注册表单附加到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
]

1 个答案:

答案 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() ...)