Hacer esto de forma asincrónica es bastante fácil. Es particularmente útil si le preocupa bloquear el hilo (probablemente).
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);
});
La advertencia es que json se escribe en el archivo en una línea y no se embellece. ex:
{
"key": "value"
}
estarán...
{"key": "value"}
Para evitar esto, simplemente agregue estos dos argumentos adicionales a JSON.stringify
JSON.stringify(file, null, 2)
null
- representa la función de reemplazo. (en este caso no queremos alterar el proceso)
2
- representa los espacios a sangrar.