@getable/couch
Stupid simple Couch wrapper based on Request
Last updated 5 years ago by joeybaker .
Artistic-2.0 · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @getable/couch 
SYNC missed versions from official npm registry.

couch NPM version Build Status Dependency Status

Stupid simple Couch wrapper based on Request

Table of Contents generated with DocToc

Install

npm install couch

Usage

var couch = require('couch')
  , c = couch('http://me.iriscouch.com/db')
  ;

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

Couch

  • new Couch(options) - return value from require('couch')(url)
  • Couch.get(id, cb) - get a document of the specified id
  • Couch.post(doc, 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>}
})

Views

  • 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>}]
})
  • Couch.design(name).view(name).query(opts)
c.design('app').view('byProperty').query({key:'type', include_docs:true}, function (e, results) {
  console.log(results.rows)
})

Tests

Tests are in tape.

  • npm test will run the tests
  • npm run tdd will run the tests on every file change.

Developing

To publish, run npm run release -- [{patch,minor,major}]

NOTE: you might need to sudo ln -s /usr/local/bin/node /usr/bin/node to ensure node is in your path for the git hooks to work

Requirements

  • npm > 2.0.0 So that passing args to a npm script will work. npm i -g npm
  • git > 1.8.3 So that git push --follow-tags will work. brew install git

License

Artistic 2.0 © Mikeal Rogers

Current Tags

  • 0.7.0                                ...           latest (5 years ago)

2 Versions

  • 0.7.0                                ...           5 years ago
  • 0.6.0                                ...           5 years ago
Maintainers (2)
Downloads
Today 0
This Week 0
This Month 2
Last Day 0
Last Week 2
Last Month 1
Dependencies (1)
Dev Dependencies (9)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |