node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey »


couch -- Stupid simple Couch wrapper based on Request.


  npm install couch

Or from source:

  git clone git:// 
  cd couch
  npm link


var couch = require('couch')
  , c = couch('')
  ;{'msg':'new document'}, function (e, info) {
  if (e) throw e{'msg':'new document',, _rev:info.rev}, function (e, info) {
    if (e) throw e
    c.get(, function (e, doc) {
      if (e) throw e
      console.log(doc) // {'msg':'new document', _id:<id>, _rev:<rev>} 


  • new Couch(options) - return value from require('couch')(url)
  • Couch.get(id, cb) - get a document of the specified id
  •, cb) - write a document. MUST have _id and _rev if already exists
  • Couch.update(id, mutate, cb) - updated an existing document atomically (regardless of revision)
c.update('myid', function (doc) {doc.status = 'complete'}, function (e, info) {
 if (e) throw e
 console.log(info) // {seq:<seq>, id:<id>, rev:<rev>}  


  • Couch.all(opts, cb) - Hits the /db/_all_docs API which accepts similar arguments and has a simpilar return value to views but is an index of all documents in CouchDB.
c.all({keys:['onlykey1', 'onlykey2']}, function (e, results) {
  if (e) throw e
  console.log(results.rows) // [{id:onlykey1, rev:<rev>}, {id:onlykey2, rev:<rev>}] 
  •'app').view('byProperty').query({key:'type', include_docs:true}, function (e, results) {