node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »



Build Status Coverage Status Dependencies devDependencies license gitter

nano-promises is a lightweight wrapper around the fabulous nano driver. It provides the same features but uses promises instead of callbacks.


import nano from 'nano';
import prom from 'nano-promises';
var db = prom(nano('http://localhost:5984')).db.use('test');
db.insert({ 'crazy': true }, 'rabbit')
  .then(function([body, headers]) {
  .catch(function(err) {

nano-promises promises always resolve to a value of the form [body, headers] or reject to a value of the form error. So it is important to use desructuring in the then handler of the promise.


The above example does not seem convincing to swith to a promise-based approach. nano-promises becomes very handy when used together with the async/await proposal for ES7:

var isRabbitCrazy = async function() {
  try {
    var [doc] = await db.get('rabbit');
    return doc.crazy;
  } catch(err) {
    console.log('error fetching rabbit:', err);
    throw err;

I don't know about you but I find this very expressive!


I love the nano library. It has a very good api design and there's a lot of work put into it!

The code in this repo is mostly adapted from co-nano, but with promises instead of thunks.


This code is licensed under the ISC license