0.3.0 • Published 9 years ago

nano-blue v0.3.0

Weekly downloads
49
License
MIT
Repository
github
Last release
9 years ago

nano-blue

A (bluebird promisified) minimalistic couchdb driver for node.js

nano-blue wraps nano in bluebird-flavored promises.

Example

A rewriting of the first example from the nano docs:

var nano = require('nano-blue')('http://localhost:5984');

// specify the database we are going to use
var alice = nano.use('alice');

// clean up a database we created previously
nano.db.destroy('alice')
  .then(function() {
    // create a new database
    return nano.db.create('alice');
  }).then(function() {
    // insert a document into the database
    return alice.insert({ crazy: true }, 'rabbit');
  }).spread(function(body, header) {
    console.log('you have inserted the rabbit');
    console.log(body);
  }).catch(function(err) {
    console.log(err.message);
  });


// you have inserted the rabbit
// { ok: true,
//   id: 'rabbit',
//   rev: '1-6e4cb465d49c0368ac3946506d26335d' }

Where you would normally use a callback that accepts body and header arguments, you should probably use Bluebird's .spread instead of .then. If you just use .then, the values will be passed as an array, which makes things not as nice. For example:

// using .spread()
alice.insert({ crazy: true }, 'rabbit')
  .spread(function(body, header) {
    console.log(body)
    console.log(header)
  });


// using .then()
alice.insert({ crazy: true }, 'rabbit')
  .then(function(res) {
    console.log(res[0])
    console.log(res[1])
  });

License (MIT)

See LICENSE file for details.

nano itself is licensed under the Apache License, version 2.0