Skip to content
This repository was archived by the owner on Aug 3, 2022. It is now read-only.

flosse/json-file-store

Repository files navigation

JSON file store

A simple JSON file store for node.js.

Build Status Dependency Status NPM version License

WARNING: Don't use it if you want to persist a large amount of objects. Use a real DB instead.

Install

npm install jfs --save 

Usage

var Store = require("jfs"); var db = new Store("data"); var d = { foo: "bar" }; // save with custom ID db.save("anId", d, function(err){ // now the data is stored in the file data/anId.json }); // save with generated ID db.save(d, function(err, id){ // id is a unique ID }); // save synchronously var id = db.saveSync("anId", d); db.get("anId", function(err, obj){ // obj = { foo: "bar" } }) // pretty print file content var prettyDB = new Store("data",{pretty:true}); var id = prettyDB.saveSync({foo:{bar:"baz"}}); // now the file content is formated in this way: { "foo": { "bar": "baz" } } // instead of this: {"foo":{"bar":"baz"}} // get synchronously var obj = db.getSync("anId"); // get all available objects db.all(function(err, objs){ // objs is a map: ID => OBJECT }); // get all synchronously var objs = db.allSync() // delete by ID db.delete("myId", function(err){ // the file data/myId.json was removed }); // delete synchronously db.delete("myId");

Single file DB

If you want to store all objects in a single file, set the type option to single:

var db = new Store("data",{type:'single'});

or point to a JSON file:

var db = new Store("./path/to/data.json");

In memory DB

If you don't want to persist your data, you can set type to memory:

var db = new Store("data",{type:'memory'});

ID storage

By default the ID is not stored within your object. If you like, you can change that behavior by setting saveId to true or a custom ID

var db = new Store("data",{saveId:'myKey'});

custom ID generator

We use uuid v4 for ID generation if you don't pass an id when save a data. If you want, you can pass custom generator.

var i = 0; var db = new Store("data",{ idGenerator: function() { i = i + 1; return i; } });

Tests

npm test 

License

This project is licensed under the MIT License.

About

A simple JSON store for Node.js

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 6