changes
A consistent, fault tolerant CouchDB _changes listener with pre-fetch support.
Usage
var Changes = require('changes');
var changes = new Changes({
url: 'http://user:pass@127.0.0.1:5984/database',
timeout: {
max: 60000,
step: 5000
}
});
changes.on('change', function (doc) {
console.dir(doc);
});
changes.listen(function (err) {
if (err) {
console.log('Did not connect to _changes on first attempt');
console.dir(err);
changes.retry.enabled = false;
return process.exit(1);
}
console.log('Listening for _changes');
});
Pre-fetching Views
Often when you establish a connection to _changes
you also want to know about the other documents in a view before the current update_seq
. This is supported like this:
var Changes = require('changes');
var changes = new Changes({
url: 'http://user:pass@127.0.0.1:5984/database',
views: {
'important': {
path: '_design/Some/_view/name',
query: { include_docs: true }
}
},
timeout: {
max: 60000,
step: 5000
}
});
changes.on('views:important', function (rows) {
console.dir(rows);
});
changes.on('change', function (doc) {
console.dir(doc);
});
changes.listen(function (err) {
if (err) {
console.log('Did not connect to _changes on first attempt');
console.dir(err);
changes.retry.enabled = false;
return process.exit(1);
}
console.log('Listening for _changes');
});
License: MIT