# couch
**Repository Path**: mirrors_mikeal/couch
## Basic Information
- **Project Name**: couch
- **Description**: Stupid simple Couch wrapper based on Request
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-09
- **Last Updated**: 2025-09-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# couch -- Stupid simple Couch wrapper based on Request.
## Install
npm install couch
Or from source:
git clone git://github.com/mikeal/couch.git
cd couch
npm link
## Usage
```javascript
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:, _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)
```javascript
c.update('myid', function (doc) {doc.status = 'complete'}, function (e, info) {
if (e) throw e
console.log(info) // {seq:, id:, 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.
```javascript
c.all({keys:['onlykey1', 'onlykey2']}, function (e, results) {
if (e) throw e
console.log(results.rows) // [{id:onlykey1, rev:}, {id:onlykey2, rev:}]
})
```
* Couch.design(name).view(name).query(opts)
```javascript
c.design('app').view('byProperty').query({key:'type', include_docs:true}, function (e, results) {
console.log(results.rows)
})
```