Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/steverandy/json-datastore

File-based JSON datastore
https://github.com/steverandy/json-datastore

datastore file json

Last synced: 15 days ago
JSON representation

File-based JSON datastore

Awesome Lists containing this project

README

        

# json-datastore

File-based JSON datastore.

## Install

```
$ npm install --save json-datastore
```

## Usage

``` javascript
let datastore = require("json-datastore")

// Write to a datastore
datastore.write("/path/to/datastore", {
_id: "global-config", checkUpdates: false
}).then(doNextThing)

// Write to users collection
datastore.write("/path/to/datastore/users", {
_id: 1, name: "Steve"
}).then(doNextThing)

// Read by id in users collection
datastore.read("/path/to/datastore/users", {_id: 1}).then(user => {
doNextThing(user)
})

// Read all in users collection
datastore.read("/path/to/datastore/users").then(users => {
doNextThing(users)
})

// Read all in users collection in descending order
datastore.read("/path/to/datastore/users", {}, {
descending: true
}).then(users => {
doNextThing(users)
})

// Remove all in users collection
datastore.remove("/path/to/datastore/users").then(doNextThing)
```

## API

**datastore.read(path, query, options)**

Read one or many documents in the specified path.

**datastore.write(path, object, options)**

Write object to a JSON file in the specified path. An `_id` is generated by default for the object and used as the file name. You can partition the store by writing to sub-directories.

**datastore.remove(path, query)**

Remove one or many documents in the specified path.

## License

[MIT License](./LICENSE)