1.0.5 • Published 3 years ago

easy-json-db-nodejs v1.0.5

Weekly downloads
-
License
-
Repository
github
Last release
3 years ago

easyJsonDb

easyJsonDb is a filesystem database for Node.js. Straightforward and zero configuration. It stores data in local JSON files. Specifically designed for testing and sample applications.

Usage

Create a Store instance specifying in which folder to store the data, then create a collections for each object type you want to store:

// import the package
const { Store } = require("easy-json-db-nodejs");

// initialize the database
const store = new Store("./data");

// create collections
const apples = store.collection("apples");
const oranges = store.collection("oranges");

This will save apples in ./data/apples.json and oranges in ./data/oranges.json.

You can then manipulate each collection using the following CRUD operations:

// create a record (returns a generated id)
const id = apples.create({ variety: "Gala", weight: 133 }); // => 'BJ4E9mQOG'

// list all records
apples.list(); // [{id: 'BJ4E9mQOG', variety: 'Gala', weight: 133}]

// get a record
apples.get("BJ4E9mQOG"); // {id: 'BJ4E9mQOG', variety: 'Gala', weight: 133}

// update a record
apples.update({ id: "BJ4E9mQOG", variety: "Braeburn", weight: 133 });

// delete a record
apples.delete("BJ4E9mQOG");

That's it. All operations are synchronous.

Files are read at startup and written after each modification. You can manually edit a JSON file and provide some initial data, as long as you do that before you start the application.

Usage with TypeScript

Specify an interface representing the type of objects stored in each collection. E.g.

import { Store } from "easy-json-db-nodejs";

interface Apple {
    id: string;
    variety: string;
    weight: number;
}

// create store
const store = new Store("./data");

// create collection
const apples = store.collection<Apple>("apples");

// insert record
const id = apples.create({ variety: "Gala", weight: 133 }); // drsWe1AwU

// list
const all = apples.list(); // all: Apple[]

Contributing

If you can, please contribute by reporting issues, discussing ideas, or submitting pull requests with patches and new features. I do my best to respond to all issues and pull requests within a day or two. Thanks

https://github.com/jankoboz/easyJsonDb

1.0.5

3 years ago

1.0.4

3 years ago