ywzhaiqi / nedb-promises

A dead-simple promise wrapper for nedb.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

nedb-promises

A dead-simple promise wrapper for nedb.

Changed:No other dependencies, only nedb.

Use npm install git+https://github.com/ywzhaiqi/nedb-promises.git to install.

const Datastore = require('nedb-promises');
let db = new Datastore('/path/to/db.db');

// #1
db.find({ field: true })
  .then(...)
  .catch(...);

// #2
db.find({ field: true })
  .exec(...)
  .then(...)
  .catch(...);

// #1 and #2 are equivalent

db.findOne({ field: true })
  .then(...)
  .catch(...);

db.insert({ doc: 'yourdoc', createdAt: Date.now() })
  .then(...)
  .catch(...);

Usage

Everything works as the original module, except there are no callbacks, and "loadDatabase" has been renamed to "load".

Check out the original documentation!

load( )

You don't need to call this as the module will automatically detect if the datastore has been loaded or not upon calling any other method.

const Datastore = require('nedb-promises');
let db = new Datastore('/path/to/db.db');
db.load(...)
  .then(...)
  .catch(...)

find( query [, projection ] )

This will return a Cursor object that works the same way it did before except when you call "exec" it takes no arguments and returns a Promise.

update on Cursor objects

With the 1.1.0 update now you can simply call .then(...) on a Cursor to request the documents in a Promise.

Note that .exec() is still necessary when .find() is in the .then() of a Promise chain (otherwise the promise would be resolved with the Cursor object).

const Datastore = require('nedb-promises');
let db = new Datastore('/path/to/db.db');

//outside Promise chain
db.find(...)
  .then(...)
  .catch(...)

//insinde Promise chain
db.insert(...)
  .then(() => {
    return db.find(...).exec();
  })
  .then(
    // use the retrieved documents
  );

findOne( query [, projection ])

Unlike "find" this will not return a Cursor since it makes no sense to sort or limit a single document. This will simply return a Promise.

other( ... )

All the other methods will take the same arguments as they did before (except the callback) and will return a Promise.

update on the update( ... ) method

This method now (1.1.1) accepts upsert and returnUpdatedDocs as it would with the original module.

Special thanks to npeterkamps for the useful pull requests!

Check out the original documentation!

About

A dead-simple promise wrapper for nedb.


Languages

Language:JavaScript 100.0%