A simple, no-frills, JSON storage engine for Node.JS
npm install simple-json-dbA simple, no-frills, JSON key-value storage engine for Node.JS with full test coverage.
> What is a key-value storage and when to use it?
npm install simple-json-db
javascript
const JSONdb = require('simple-json-db');
const db = new JSONdb('/path/to/your/storage.json');
`The prototype of the constructor is
new JSONdb(string, [object]), and you can supply the optional options object by giving it as second parameter:`
const db = new JSONdb('/path/to/your/storage.json', { ... });
`See the Options section for more details.
#### Options
All keys are optional and will default to a safe value.
| Key | Value type | Description | Default value |
|-------------|------------------------------|-------------------------------------------------------------------|-------------------------------------|
| asyncWrite | _Boolean_ | Enables the storage to be asynchronously written to disk. | _false_ (synchronous behaviour) |
| syncOnWrite | _Boolean_ | Makes the storage be written to disk after every modification. | _true_ |
| jsonSpaces | _Number_ | The number of spaces used for indentation in the output JSON. | _4_ |
| stringify | _Function(object) => string_ | A stringifier function to serialize JS objects into JSON strings. | _JSON.stringify_ |
| parse | _Function(string) => object_ | A parser function to deserialize JSON strings into JS objects. | _JSON.parse_ |
$3
db.set('key', 'value');The
key parameter must be a string, value can be whatever kind of object can be stored in JSON format. _JSON.stringify() is your friend!_$3
db.get('key');The
key parameter must be a string. If the key exists its value is returned, if it doesn't the function returns undefined.$3
db.has('key');The
key parameter must be a string. If the key exists true is returned, if it doesn't the function returns false.$3
db.delete('key');The
key parameter must be a string. The function returns as per the _delete_ operator if the key exists, else it returns undefined.$3
db.sync();This function writes the JSON storage object to the file path specified as the parameter of the main constructor. Consult the Options section for usage details; on default options there is no need to manually invoke it.
$3
db.JSON();This will return a copy of the internal JSON storage object, for you to tinker with and loop over.
$3
db.JSON({ data });Giving a parameter to the
JSON function makes the object passed replace the internal one. _Be careful, as there's no way to recover the old object if the changes have already been written to disk._Tests
Run
npm ci to install the testing dependencies and npm test` to start the test suite.