Ответ 1
Выполнение этого асинхронно довольно просто. Это особенно полезно, если вы обеспокоены блокировкой потока (вероятно).
var fs = require('fs');
var fileName = './file.json';
var file = require(fileName);
file.key = "new value";
fs.writeFile(fileName, JSON.stringify(file), function (err) {
if (err) return console.log(err);
console.log(JSON.stringify(file));
console.log('writing to ' + fileName);
});
Предостережение заключается в том, что json записывается в файл на одной строке и не преувеличен. например:
{
"key": "value"
}
будет...
{"key": "value"}
Чтобы этого избежать, просто добавьте эти два дополнительных аргумента в JSON.stringify
JSON.stringify(file, null, 2)
null
- представляет собой функцию замены. (в этом случае мы не хотим изменять процесс)
2
- обозначает пробелы для отступа.