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

json, node.js

Solution

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.

Problem

How do I update a value in a json file and save it through node.js? I have the file content: ``` var file_content = fs.readFileSync(filename); var content = JSON.parse(file_content); var val1 = content.val1; ``` Now I want to change the value of `val1` and save it to the file.

Original source