kmodel

Object-oriented model based on mongoose. for koa

kmodel

###Installation

$ alias node="node --harmony"
$ npm install kmodel
var k = require("kmodel");
 
k.connect();// or k.connect("mongodb://ip:port", __dirname+"/models/"); 
 

###koa

var User = k.load("User");
 
router.get('/user/:id', function *() {
 
    var id = this.params.id;
 
    this.response.body = yield User.find({_id:id});
});
    
var test = function* (){
    
    var r = yield User.find({type:"xx"});
    console.log(r)
};
 
run(test);
 
function run (fn) {
    
    var gen = fn();
    
    next();
 
    function next(ervalue){ 
        if (er) return gen.throw(er);
        var continuable = gen.next(value);
 
        if (continuable.done) return;
        var callback = continuable.value;
        callback(next);
    }
}
 
 
var User = k.create({
    username: "string",
    password: "string",
    nickname: "string"
}, "User");
 
var query = function *(){
    var users = yeild User.find({});
};
 
var user = yield User.insertOne({
    username: "aki",
    password: "aki",
    nickname: "eeee"
});

###Extendable

// for User 
User.login = function* (namepassword){
    var user = yield this.find({username: name, password: password});
    return user;
};
 
// for Class  
k.all("names", function* (username){
    return yield this.find({username:username});
});
 
 
// then 
var user = yield User.names("aki");
 
var k = require("kmodel").connect(),
    User = k.load("User");
 
var user = yield User.signup({username:"wwww",password:"asasdasd"});
 

###features

// "User.js" in /kmodel/features

 
var userdao = k.load("User");
 
var result = yield userdao.login(username, password);