@getable/couch
v0.7.0
Published
Stupid simple Couch wrapper based on Request
Readme
couch

Stupid simple Couch wrapper based on Request
Table of Contents generated with DocToc
Install
npm install couchUsage
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 testwill run the testsnpm run tddwill 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-tagswill work.brew install git
License
Artistic 2.0 © Mikeal Rogers
