如何在写入节点Js中的文件时将对象推入数组中

问题描述 投票:0回答:1

[如何在Node Js中写入文件时将对象推入数组中?我目前有以下工作代码

fs.appendFile("sample.json", JSON.stringify(data, undefined, 2) + ",");

其中数据是对象,例如

{
name:'abc',
age: 22,
city: 'LA'
}

附加时,结果如下

{
name:'abc',
age: 22,
city: 'LA'
},
{
name:'def',
age: 25,
city: 'MI'
},

我在这里看到2个问题。1.末尾的逗号2.无法形成数组并将对象推入其中]

任何线索都将不胜感激

javascript arrays node.js fs
1个回答
0
投票

追加会将您的数据追加到文件中,此处的数据被视为字符串,所有追加等于将字符串压缩为另一个字符串。

相反,这里需要首先读取文件并将其转换为数据结构,在本示例中,它可以是对象数组,并将该数据结构转换为字符串并将其写入文件。

要写入文件

fs.writeFileSync('sample.json', JSON.stringify([data], null, 2));

sample.json

[
  {
    "name": "abc",
    "age": 22,
    "city": "LA"
  }
]

从文件读取

const fileData = JSON.parse(fs.readFileSync('sample.json'))
fileData.push(newData)

将附加到前一个文件的新数据写入文件中

fs.writeFileSync('sample.json', JSON.stringify(fileData, null, 2));

sample.json

[
  {
    "name": "abc",
    "age": 22,
    "city": "LA"
  },
  {
    "name": "abc",
    "age": 22,
    "city": "LA"
  }
]
© www.soinside.com 2019 - 2024. All rights reserved.