我是Node.js和JavaScript的新手。我有一个results.json
文件,我希望保留一个运行的结果日志,该脚本来自从Web上提取图像的脚本。但是,我当前的脚本只会覆盖现有结果。如何构建或添加results.json
以便每个后续结果都记录在results.json文件中?我希望它是有效的json。
以下是一般示例:
var currentSearchResult = someWebSearchResult
var fs = require('fs');
var json = JSON.stringify(['search result: ' + currentSearchResult + ': ', null, "\t");
fs.writeFile("results.json", json);
结果.json:
[
"search result: currentSearchResult"
]
答案 0 :(得分:15)
如果您希望文件是有效的JSON,则必须打开文件,解析JSON,将新结果附加到数组,将其转换回字符串并再次保存。
var fs = require('fs')
var currentSearchResult = 'example'
fs.readFile('results.json', function (err, data) {
var json = JSON.parse(data)
json.push('search result: ' + currentSearchResult)
fs.writeFile("results.json", JSON.stringify(json))
})
答案 1 :(得分:1)
通常,如果要附加到文件,则应使用:
fs.appendFile("results.json", json , function (err) {
if (err) throw err;
console.log('The "data to append" was appended to file!');
});
如果不存在,则附加文件创建文件。
但是,如果你想首先附加JSON数据,你就可以读取数据,之后你可以覆盖这些数据。
fs.readFile('results.json', function (err, data) {
var json = JSON.parse(data);
json.push('search result: ' + currentSearchResult);
fs.writeFile("results.json", JSON.stringify(json), function(err){
if (err) throw err;
console.log('The "data to append" was appended to file!');
});
})
答案 2 :(得分:0)
您可以使用Bunyan。那是
简单快速的JSON日志记录库