Node JSON File Storage
A simple, lightweight node.js file storage for JSON data.
Installation
Download this project via Github and add it manually to your project or install the JSON File Storage npm / yarn package:
npm i node-json-file-storage
/
yarn add node-json-file-storage
How to Use / API
Create a new Store
// load lib...const JSONFileStorage = ; // adjust the require path, if not installed via npm/yarn // create store...const file_uri = __dirname + "/your-storage-name.json";const storage = file_uri;
Put
// content to save...const obj_1 = 'some_content';const obj_2 = bar: 'baz'; // save to file const id = storage; // returns a random uuid 'id_1' // save multiple items into the store (faster than calling put() twice)const ids = storage; // returns an array of uuids: ['id_1', 'id_2']
A Note on the Use of IDs
You can use the storage in db manner (auto-id) const id = storage.put('your_content');
or key-value manner by wrapping your content in an object and providing your own keys in an id field storage.put({id:'your_key', 'your_content'})
.
If you put an object with an id existing in the store, the existing and the new object will be merged, strings etc. will be replaced.
An example: the new object {'id': {'foo': 1, 'bar': 2}}
and the existing {'id': {'foo': 2, 'baz': 4}}
will result in {'id': {'foo': 1, 'bar': 2, 'baz': 4}}
.
Get (Everything)
// retrieve an item from the storeconst obj = storage; // returns the item or null // retrieve multiple items from the store (again, its faster)const objs = storage; // returns an array of items found: ['some_content', {bar: 'baz'}] // read the whole storeconst everything = storageall; // returns a copy of the store: [{'id_1': 'some_content'}, 'id_2': {bar: 'baz'}}]
Remove (Everything)
// remove an item from storeconst bool = storage; // returns if successfull// or simply...storage; // remove multiple items from the store (you know why...)storage; // clear the whole storestorageclear;
Donate
If you like the project and it saved you a while of coding, spend me a coffee (or all of your savings) to keep me motivated: paypal.me