What is it?
                    
                    
                        An easy-to-use, powerful wrapper for the
                        CouchDB HTTP API.
                        It follows Node.js callback
                        conventions, and takes care of many of the details of the
                        HTTP request/response cycle, allowing you to focus on
                        getting your job done.
                    
                    
                        
                        What is it not?
                    
                    
                        This is not an ORM for CouchDB, it's simply a JavaScript API to communicate with the CouchDB
                        HTTP API.
                    
                 
                
                    
                        
                        Features
                    
                    
                        - Clean, discoverable API
 
                        - Consistent with Node.js conventions
 
                        - Built-in caching support (via HTTP Etags)
 
                        - Changes API (queries and streams)
 
                        - Attachments support
 
                        - User API (
_users db, see Server API) 
                        - Utilizes mikeal's request module
 
                    
                    
                        
                        Upcoming
                    
                    
                        - More auth methods (cookie, oauth, etc.)
 
                        - HTTP COPY support
 
                    
                 
                
                    
                        
                        Installation
                    
                    npm install couchdb-api
                 
             
         
        API Reference
    
        Server API
A Server object represents a single CouchDB node/server instance.
var couchdb = require("couchdb-api");
// only 1 argument, a full URL string pointing to your Couch
var server = couchdb.srv("http://localhost:5984");
            
                
                    
                        GET /_active_tasks
                    Get information about all the active tasks currently running on the server
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        GET /_all_dbs
                    Get a list of all the databases on the server
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                    Getter/setter property for HTTP Basic Auth parameters
// get
server.auth; // "user:pass"
// set
server.auth = [ "user", "pass" ];
server.auth = "user:pass";
                 
                
                
            
            
                
                    
                        Returns Database object
                        
                    Returns an object representing a database on this server
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | name | 
                                            String | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        GET /
                    Get basic information about the server
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        GET /_log
                    Get the text of the server's log file
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | [query] | 
                                            Object | 
                                             | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        POST /_session
                    Attempt a login against the server itself
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | user | 
                                            String | 
                                             | 
                                        
                                        
                                            | pass | 
                                            String | 
                                             | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        DELETE /_session
                    Logout (destroy the session)
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        
                    Create a new user in the _users database
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | name | 
                                            String | 
                                             | 
                                        
                                        
                                            | pass | 
                                            String | 
                                             | 
                                        
                                        
                                            | [options] | 
                                            Object | 
                                             | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        POST /_replicate
                    Performs a replication from this database to the destination database
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | source | 
                                            String, Object | 
                                             | 
                                        
                                        
                                            | target | 
                                            String, Object | 
                                             | 
                                        
                                        
                                            | [options] | 
                                            Object | 
                                             | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        GET /_restart
                    Restarts the server
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        GET /_session
                    Check the status of the current session
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        GET /_stats
                    Get the server running stats
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        Returns New User Document
                        
                    Creates a properly structured user document
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | name | 
                                            String | 
                                             | 
                                        
                                        
                                            | pass | 
                                            String | 
                                             | 
                                        
                                        
                                            | [options] | 
                                            Object | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        GET /_uuids
                    Get a list of generated UUIDs
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | [count] | 
                                            Number | 
                                            default = 1 | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
    
    
        Database API
A Database object represents a single CouchDB database.
var couchdb = require("couchdb-api");
// defaults to "http://localhost:5984/db-name"
couchdb.db("db-name");
// or use a Server object to initialize
couchdb.srv().db("db-name");
            
                
                    
                        GET /db/_all_docs
                    Query the _all_docs special view
// default behavior
db.allDocs(callback)
// adding query params
db.allDocs({ include_docs: true }, callback)
// querying for specific keys
db.allDocs(null, ["doc-id-1", "doc-id-2"], callback)
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | [query] | 
                                            Object | 
                                             | 
                                        
                                        
                                            | [keys] | 
                                            Array | 
                                             | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        POST /db/_bulk_docs
                    Performs a bulk operation
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | docs | 
                                            Array | 
                                            Array of document objects | 
                                        
                                        
                                            | [mode] | 
                                            String | 
                                            "all-or-nothing" or "non-atomic" | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        GET /db/_changes
                    Query (or initiate a stream) the CouchDB _changes API
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | query | 
                                            Object | 
                                             | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        POST /db/_compact, POST /db/_compact/ddoc
                    Perform a database (or design document view index) compation
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | [ddoc] | 
                                            String | 
                                            If passed, will compact the specified design document's view indexes | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        PUT /db
                    Create the database
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        Returns a new DesignDocument object
                        
                    Initializes a new DesignDocument object for this database
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | name | 
                                            String | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        Returns a new Document object
                        
                    Initializes a new Document object for this database
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | [id] | 
                                            String | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        DELETE /db
                    Drop the database
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        POST /db/_ensure_full_commit
                    Commits recent db changes to disk
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        GET /db
                    Get basic information about the database
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        Returns a new LocalDocument object
                        
                    Initializes a new LocalDocument object for this database
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | name | 
                                            String | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                    Getter/setter property for database name
Note It is entirely dependent on _url.pathname[1]
                 
                
                
            
            
                
                    
                        POST /_replicate
                    Similar to replicate, except it uses the current db as the target instead of the source
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | source | 
                                            Object | 
                                             | 
                                        
                                        
                                            | [query] | 
                                            Object | 
                                             | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        POST /db/_purge
                    Purges references to deleted documents from the database
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        DELETE /db, PUT /db
                    Drop the database, then create it again
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        POST /_replicate
                    Replicates the current db to another db
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | target | 
                                            String, Object | 
                                             | 
                                        
                                        
                                            | [query] | 
                                            Object | 
                                             | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        POST /db/_security
                    Gets/sets the security object for this db
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        POST /db/_temp_view
                    Execute a temporary view
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | map | 
                                            Function | 
                                             | 
                                        
                                        
                                            | [reduce] | 
                                            Function | 
                                             | 
                                        
                                        
                                            | [query] | 
                                            Object | 
                                             | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        POST /db/_view_cleanup
                    Clear the cached view output
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
    
    
        Document API
A Document object represents a single document.
var doc = db.doc("my-doc-id")
            
                
                    
                        Returns 
                        
                    Create a new Attachment object
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | name | 
                                            String | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                    This property helps maintain the internals of the object if it is set after
initialization. (keeps _id in sync with the rest of the body)
                 
                
                
            
            
                
                    
                        DELETE /db/doc
                    Delete the document from the server
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        GET /db/doc
                    Retrieve the document from the server
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                    Another property to help keep the internals in line. This will make sure the
internal URL is in sync with the _id property even after initialization.
                 
                
                
            
            
                
                    
                        Returns Set = chainable, Get = returns current value
                        
                    Shorthand for getting/setting basic properties (only works 1 level deep)
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | field | 
                                            String | 
                                             | 
                                        
                                        
                                            | [value] | 
                                            Various | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        PUT /db/doc, POST /db
                    Save the document to the server
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        GET /db/_design/design-doc/_show/show-name/doc
                    Execute a show function for the current document
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | show | 
                                            String | 
                                            The name of the show function (ddoc/show) | 
                                        
                                        
                                            | [query] | 
                                            Object | 
                                             | 
                                        
                                        
                                            | [options] | 
                                            Object | 
                                             | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
    
    
        Attachment API
An Attachment object represents a single attachment on a document.
var attachment = doc.attachment("my-ddoc-name");
            
                
                    
                        Returns this
                        DELETE /db/doc/attachment
                    Removes an attachment from a document on the server
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        GET /db/doc/attachment
                    Retrieve an attachment from a document
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | stream | 
                                            Boolean | 
                                             | 
                                        
                                        
                                            | [options] | 
                                            Object | 
                                             | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                    Maintains the name as part of the URL
                 
                
                
            
            
                
                    
                        PUT /db/doc/attachment
                    Saves an attachment to the server
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        
                    Set up the body of this attachment
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | format | 
                                            String | 
                                             | 
                                        
                                        
                                            | body | 
                                            Various | 
                                             | 
                                        
                                
                            
                         
                 
            
    
    
        View API
A View object represents a single view within a design document
var view = ddoc.view("my-view-name");
            
                
                    
                        GET /db/_design/design-doc/_list/list-name/doc
                    Execute a list function for the current document
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | list | 
                                            String | 
                                            The name of the list function in the above design document | 
                                        
                                        
                                            | [query] | 
                                            Object | 
                                             | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        GET /db/ddoc/_view/view
                    Perform a map query against a stored view
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | [query] | 
                                            Object | 
                                             | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                    Gets/sets the name as part of the URL
                 
                
                
            
            
                
                    
                        GET /db/ddoc/_view/view
                    Perform a generic query against a stored view
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | [query] | 
                                            Object | 
                                            If only one of the optional params is provided, this is assumed to be the one | 
                                        
                                        
                                            | [data] | 
                                            Array, Various | 
                                            Array = pass as `keys` in body, Various = pass as complete body | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        GET /db/ddoc/_view/view
                    Perform a reduce query against a stored view
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | [query] | 
                                            Object | 
                                             | 
                                        
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
    
    
        DesignDocument API
A DesignDocument object represents a single design document.
var doc = db.ddoc("my-ddoc-name")
            
                
                    
                        GET /db/_design/ddoc
                    Get statistical information about the design document
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | callback | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        Returns Set = chainable, Get = list function
                        
                    Get/set a single list function
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | name | 
                                            String | 
                                             | 
                                        
                                        
                                            | fn | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        Returns Set = chainable, Get = list hash
                        
                    Get/set all the list functions
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | [lists] | 
                                            Object | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                    Behaves similarly to the Document property with the same now
                 
                
                
            
            
                
                    
                        Returns Set = chainable, Get = show function
                        
                    Get/set a single show function
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | name | 
                                            String | 
                                             | 
                                        
                                        
                                            | fn | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        Returns Set = chainable, Get = show hash
                        
                    Get/set all the show functions
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | [shows] | 
                                            Object | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        Returns Set = chainable, Get = update function
                        
                    Get/set a single update handler
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | name | 
                                            String | 
                                             | 
                                        
                                        
                                            | fn | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        Returns Set = chainable, Get = update hash
                        
                    Get/set the update handlers
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | [updates] | 
                                            Object | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        Returns Set = chainable, Get = validation function
                        
                    Method wrapper for validate, to allow for chaining
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | [fn] | 
                                            Function | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                    Get/set the validation function
                 
                
                
            
            
                
                    
                        Returns Set = chainable, Get = view object
                        
                    Set a single named view
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | map | 
                                            Function | 
                                             | 
                                        
                                        
                                            | [reduce] | 
                                            Function, String | 
                                             | 
                                        
                                
                            
                         
                 
            
            
                
                    
                        Returns Set = chainable, Get = view hash
                        
                    Get/set all the views
                 
                
                        
                            
                                
                                    
                                        | Name | 
                                        Type | 
                                        Description | 
                                    
                                
                                
                                        
                                            | [views] | 
                                            Object | 
                                             | 
                                        
                                
                            
                         
                 
            
    
    
        LocalDocument API
A LocalDocument object represents a single local document
(a document that does not get replicated)
var ldoc = db.ldoc("my-ldoc-id")
            
                
                    
                    Behaves similar to the Document property with the same name,
also keeping the id and url in sync.
                 
                
                
            
    
        
            Code / Object Structure
            
                Great care has been taken to leverage the powerful nature of JavaScript.
                This includes using prototypes for inheritance and code encapsulation,
                cached mixins for a smaller type of inheritance and performance as well
                as leveraging every object as a reference to allow for lots of useful
                references and discoverability.
            
            The Client Object
            
                Every API object inherits from a HTTP client object that is the workhorse
                of HTTP requests and responses. All requests are routed through here,
                and responses are automatically handled before being sent back to the calling objects.
            
            
                Every callback executes in the context of the object that made the request.
                Also, the 3rd parameter to each callback is the HttpResponse object from the request. (if available)
            
            The API Hierarchy
            Server
└→ Database
   └→ Document
      └→ Attachment
   └→ Design Document
      └→ View
   └→ Local Document
            
                As you descend into the inheritance chain, all the parent objects
                are also included with each instance. For example, a database
                object will have a server property that references the
                object that initialized it. A document object will have a
                db property and a server property. Feel free
                to inspect the objects as well, there's plenty to see and use there!
            
        
        
            Callbacks
            
                Every HTTP request method in couchdb-api follows the same conventions,
                because they are all routed through the same request function.
            
            
                Every callback receives the same set of parameters and is given the same
                context. (the object itself that made the API call)
            
            
                
                    
                        | Name | 
                        DataType | 
                        Comments | 
                    
                
                
                    
                        | err | 
                        object | 
                        Not included if no errors took place | 
                    
                    
                        | data | 
                        mixed | 
                        Not included if an error occurred. In most cases, this will return a parsed JSON object, but sometimes it will simply return a string of the response body. | 
                    
                    
                        | response | 
                        HttpResponse | 
                        The raw HttpResponse object from Node.js |