read and write NDJSON files (Newline Delimited JSON)
While NDJSON is often used for efficient streaming of JSON, it is also a good format for persisting and retreiving object data collections to and from disk. For example, NeDB uses the format.
See Also:
The following fs-ndjson
methods mirror the fs
core module method APIs, however, the methods have been universalified so that you can use promises or callbacks for async.
- readFile
- readFileSync
- writeFile
- writeFileSync
BONUS: writeFile
and writeFileSync
will create the parent directory, if it does not already exist.
$ npm install --save fs-ndjson
Given /Users/tyler/project-mayhem/enemies.db
contains
{"name":"Equifax","location":"Atlanta, GA"}
{"name":"Visa","location":"Foster City, CA"}
const fsNdjson = require('fs-ndjson');
// can return a promise
fsNdjson.readFile('/Users/tyler/project-mayhem/enemies.db').then(targets => {
console.log(targets);
// [
// {
// name: "Equifax",
// location: "Atlanta, GA"
// },
// {
// name: "Visa",
// location: "Foster City, CA"
// }
// ]
});
// can use a callback
fsNdjson.readFile('/Users/tyler/project-mayhem/enemies.db', (err, enemies) => {
if (err) throw err;
console.log(enemies.length);
// => 2
});
// can be used synchronously
let enemies = fsNdjson.readFileSync('/Users/tyler/project-mayhem/enemies.db');
// ******** BUT WAIT, THERE'S MORE! ******** //
// Not only does it read, but it writes too! //
// fsNdjson.writeFile // use callback or promise
// fsNdjson.writeFileSync // does what you think it does
ISC © Buster Collings