javascriptnode.jsjsonleap-motion

How can I write a JSON stream to file using Node.js?


I want to write a full JSON object to a file as it comes in. I'm currently using

const file = fs.createWriteStream('./example.file');
var inputStream = JSON.parse(generatedData);
fs.write(inputStream+"\n");

The stream I'm trying to capture comes from a Leap Motion controller frame.dump. I've attempted to write the object using both JSON.parse() and JSON.stringify(), but it only seems to write undefined lines.

I'm probably not handling the object correctly, but I don't know how to resolve it.

EDIT: For clarification, I know how to write single elements of the JSON object, but I would prefer to dump the entire JSON to each new line.


Solution

  • generatedData is already a JSON string here and you are now parsing it back to an object which is not needed.

    As you want to append to the file, I would consider appendFile

    fs.open('./example.txt', 'a', (err, fd) => {
      if (err) throw err;
      fs.appendFile(fd, generatedData, 'utf8', (err) => {
        fs.close(fd, (err) => {
          if (err) throw err;
        });
        if (err) throw err;
      });
    });