LazyBoy makes it easier to build applications with Couchdb. It removes the repeatable cruft and makes working with Couchdb as fun as it should be.
-
Download
npm install lazyboy
-
Connect to database
var Model = require('lazyboy') Model.create_connection("my_database");
-
Define a model
Model.define('User', { name: String surname: {type: String, default: "Rambo"} })
-
Read the docs: http://garrensmith.com/LazyBoy
Below is a quick cheatsheet but the docs can be found at http://garrensmith.com/LazyBoy
var Model = require('LazyBoy');
Model.define('User', {
name: String
surname: {type: String, default: "Rambo"}
})
var user = Model.create('User', {name: "John", surname: "Rambo"});
user.save(function (err, saved_user) {
// .. do some other stuff here
})
var user_id = "123456";
var User = Model('User');
User.find(user_id, function (err, user) {
// .. do something with the user
})
var User = Model('User');
User.all(function (err, users) {
// .. do something with the user
})
var User = Model('User');
User.where("name","Ben", function (err, users) {
// .. do something with the users
})
var User = Model('User');
User.findFirst('name', 'Ben', function (err, user){
// .. do something with the user
})
var Band = Model.define("Band",{rank: Number, name: String});
Band.addView('ByRankAndName',{
map: function (doc) {
if (doc.model_type === 'Band') {
emit([doc.rank, doc.name],1);
}
}
});
Band.view('ByRankAndName')
.startkey([2, "Incubus"])
.endkey([3, {}])
.limit(10)
.skip(3, function (err, bands) {
// will only execute the chain when a function has a callback passed to it
});
Logging has been disabled for now.
- Define model_type field stored in db
- Multiple db support
- Improved logging
- 16 May 2013 - Add findFirst
- 24 October 2012 - Add Chainable Api
- 25 July 2012 - Bug fixes, change tests to mocha
- 20 July 2012 - Added toJSON function on Document
- 11 Nov 2011 - Added Validations using node-validator
- 13 Sep 2011 - Add Id to serialised model
- 11 Sep 2011 - Add Before And After Remove Callbacks (Donnie Hedin)
- 17 Aug 2011 - Add support for custom methods
- Sven Bergström (underscorediscovery)
- Donnie Hedin (sofa420)
- 8bitDesigner