我有一个现有的JSON文件,数据是这样的。
[{"address":"unit f 11-13 short street, auburn, nsw 2144"},{"address":"village green brooks circuit, lidcombe, nsw 2141"}]
我想向此JSON文件添加新值。这是我的方法。
function saveNewAddress(
address /* :?string | void */, cb
) /* :Promise<string> */ {
return new Promise(function(resolve, reject) {
fs.appendFile('address-list.json', JSON.stringify(address), "utf8", function(err) {
if (err) throw err;
console.log("File saved.");
});
});
}
这有效,但是不会将新值添加到数组中。它将新值添加到数组的末尾。
使用时fs.appendFile()
,数据将作为字符串而不是作为新的数组元素添加到文件的末尾。
您需要将JSON文件的内容作为JavaScript对象获取,将属性添加到数组中,最后保存新文件。
一种方法是使用读取文件fs.readFile()
,如TGW在其评论中建议的那样。
但是,NodesJS有一个方便的方法可以执行以下操作require()
:
const fs = require('fs');
const json = require('./address-list.json');
function saveNewAddress(address) {
return new Promise((resolve, reject) => {
json.push({address})
fs.writeFile('address-list.json', JSON.stringify(json), (err) => {
if (err) reject(err)
resolve("File saved.")
})
});
}
saveNewAddress('some_new_adress')
.then(result => {
console.log(result)
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句