How to update a value in a json file and save it through node.js

Doing this asynchronously is quite easy. It’s particularly useful if you’re concerned with blocking the thread (likely). Otherwise, I’d suggest Peter Lyon’s answer

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);
});

The caveat is that json is written to the file on one line and not prettified. ex:

{
  "key": "value"
}

will be…

{"key": "value"}

To avoid this, simply add these two extra arguments to JSON.stringify

JSON.stringify(file, null, 2)

null – represents the replacer function. (in this case we don’t want to alter the process)

2 – represents the spaces to indent.

Leave a Comment