使用nodejs添加对象数组并在file.txt上读取

时间:2018-09-08 10:34:33

标签: javascript node.js socket.io

让我说我有这些物体

{name:'somename',date:'10/20'}
{name:'anothername',date:'07/30'}

在使用节点的文件中,我可以读取这些对象 我希望它们成为一个数组,所以我使用了.split('\n')  问题是如果我尝试

,我将其作为字符串表示
objectArray.map((singleObject)=>{
console.log(singleObject.name)
})

我得到了undefined

这就是我如何在file.txt上写对象

fs.appendFile(path.join(__dirname,'file.txt'),
        object,(e)=>{
            console.log(e);
    })

3 个答案:

答案 0 :(得分:1)

尝试按以下方式访问

build.gradle

答案 1 :(得分:1)

JSON字符串应为'{“ key”:“ value”}'格式

所以您应该以必需的格式编写它。

fs.appendFile(path.join(__dirname,'file.txt'),
    JSON.stringify(object),(e)=>{
        console.log(e);
});

读取文件后,解析数据。

fs.readFile('file.txt','utf8',function(err,data){
   data = data.split("\n");
   var a = JSON.parse(data[0]);
   console.log(a);
})

答案 2 :(得分:0)

通过使用\n分割文件,可以得到一个有效且可迭代的数组,但是您可能需要考虑的是objectArray的每个条目都是一个字符串,而不是对象!因此,在访问其属性之前,需要使用JSON.parse将其设为对象。因此,您的最终代码如下。

objectArray.map((singleObject) => {
    let obj = JSON.parse(singleObject)
    console.log(obj.name)
})