baseview
is a minimalistic CouchBase client for node.js based on the minimalistic CouchDB driver nano.
CouchBase provides view data as JSON, which can be accessed and streamed with this client. To store and retrieve single documents/key-value pairs, the memcached-library is required.
baseview = require('baseview')('http://127.0.0.1:8092')
or
baseview = require('baseview')({url: 'http://127.0.0.1:8092', bucket: 'my_bucket'})
...
// retrieve data from a view
baseview.view('design_doc', 'view_name', function(error, data) {
console.log(error, data);
});
// retrieve data from a spatial index with boundix box.
// see sparta for bbox calculations
baseview.spatial('geo', 'points', {bbox: bbox}, function(error, points) {
console.log(error, points);
});
//adding a design document
baseView.setDesign('design_doc',
{
'names':{
'map': "function(doc){if(doc.name){emit(doc.name);}}"
},
'rating': {
'map': "function(doc){if(doc.name && doc.rating){emit(doc.rating);}}"
}
},
function(err, res){
//handle error http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-designdoc-api-storing.html
}
);
// retrieve a design document
baseView.getDesign('design_doc', function(err,res){
// http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-designdoc-api-retrieving.html
});
// delete a design document
baseView.deleteDesign('design_doc', function(err, res){
// handle error http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-designdoc-api-deleting.html
});
To create a geographical bounding box (bbox), have a look at sparta, a small library for geo calculations.
io.sockets.on('connection', function (socket) {
baseview.view('feed', 'images', function(error, data) {
socket.emit('image_feed', data.rows);
});
});
everyone is welcome to contribute. patches, tests, bugfixes, new features
- create an issue on github so the community can comment on your idea
- fork
baseview
in github - create a new branch
git checkout -b my_branch
- create tests for the changes you made
- make sure you pass both existing and newly inserted tests
- commit your changes
- push to your branch
git push origin my_branch
- create an pull request
proudly presented by Patrick Heneise, Barcelona.