couchdb-mkdb
v2.0.3
Published
Utility to create couchdb databases easier.
Downloads
5
Readme
couchdb-mkdb
couchdb-mkdb
makes it easy to create databases and stream couchdb's response.
Installation
$ npm i -S couchdb-mkdb
Usage
Express example
This express route creates new databases on every request.
...
app.post('/', (req, res, next) => {
let name = 'mydb-' + uuid.v1();
let opts = {
// `security` is a special option ...
security: {
admins: {names: [req.user.name], roles: []},
members: {names: [], roles: []}
},
// ... all other options are passed to the underlaying `request` function.
// See https://github.com/request/request#requestoptions-callback
baseUrl: app.get('couchdb'),
auth: app.get('auth')
};
// Use the mkdb utility to create the database
mkdb(name, opts)
.on('error', next)
.on('response', function(response) {
// For error handling check the statusCode
if ((response.statusCode / 100 | 0) !== 2) {
console.log('Database wasn\'t created or security couldn\'t be updated');
}
response.pipe(
res.set(response.headers)
.status(response.statusCode)
);
})
.on('success', function() {
// Event 'response' has already been emitted
console.log('Database successfully created');
});
});
API
mkdb(name, [opts], callback)
name
The name of the databaseopts
Optional options object. See belowcallback
Function with the signaturefn(error, response)
Available options are:
security
The security rules to apply to the database. See Couchdb security
All other options are passed to the underlaying request() function.
Events
error(err)
- Emitted on request errorerrorResponse(res)
- deprecated Emitted when couchdb returns a paranormal response. See Update notesresponse(res)
- Emitted when couchdb responds to the last actionsuccess
- Emitted on success
Tests
$ git clone https://github.com/domachine/node-couchdb-mkdb.git
$ cd node-couchdb-mkdb
$ npm i
$ npm test
Update notes
v2.0
mkdb
now uses request as transport
engine. Therefore the options you can pass are similar to
request's options. See
docs.
v1.1
The first version had an 'errorResponse' event. This has now been deprecated. Use the 'response' event instead and check the statusCode.