Сделать это асинхронно довольно просто. Это особенно полезно, если вы беспокоитесь о блокировке потока (вероятно).
const fs = require('fs');
const fileName = './file.json';
const file = require(fileName);
file.key = "new value";
fs.writeFile(fileName, JSON.stringify(file), function writeJSON(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
- представляет собой пробелы для отступа.