Зробити це асинхронно досить просто. Це особливо корисно, якщо ви стурбовані блокуванням потоку (ймовірно).
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 - представляє пробіли для відступу.