nodejs之ORM关系框架Bookshelf

项目结构图:

nodejs之ORM关系框架Bookshelf_第1张图片

1、安装knex和bookshelf

npm install knex;

npm install bookshelf;

2、创建bookshelf实例

var knex = require('knex'),
    db;    // 数据库连接

// 数据库连接配置
var config = {
    client: 'mysql',        // 其他可以是pg、sqlite3
    connection: {
        host:'127.0.0.1',
        user:'root',
        password:'123456',
        database:'databaseName', // 数据库名称
        charset: 'utf8'
    }
};

// 保证数据库连接只初始化一次。
if (!db) {
    db = knex(config);
}
var bookshelf = require('bookshelf')(db);

module.exports = bookshelf;
 
  
3、创建数据库和对象映射关系
	
var bookshelf = require("../dao/db");

var User = bookshelf.Model.extend({
    tableName: "user",
});

var model = {};
model.User = User;
module.exports = model;
 
  
4、查询一张表全部数据
models.User.forge().fetchAll().then(function(user){
    console.log(user.models);
    res.render("list",{rows:user.models});
});
 
  
5、根据条件查询数据
 
  
models.User.forge({
    id: req.params.id
}).fetch().then(function(user) {
    console.log(user);
    res.render("updata",{user:user});
});
 
  
6、更新数据
 
  
models.User.forge().where('id', '=', id).save(
    {
        id: req.fields.id,
        user_cn_name: req.fields.name,
        user_age: req.fields.age,
        user_idcard: req.fields.idcard,
    }).then(function(reslut) {
	res.render("updata",{user:reslut});
}). catch( function(err) { console. log(err); });
7、删除数据
 
  
models.User.forge().where('id', '=', req.params.id).destroy().then(function(result)
{   
    res.render("updata",{user:reslut});
}). catch( function(err) { console. log( 4);});
 
  
8、官网显示可以实现事务管理,经测试并没实现,不知错在何处(还请实现的朋友指导一下)
bookshelf.transaction(function(){   
    models.User.forge().where('id', '=', req.params.id).destroy().then(function(result){
        models.Pet.forge().where('pet_manger', '=', req.params.id).destroy().then(function(result)
            {
                res.redirect("/list");
            }).catch(function(err) {
                console.log(5);
            });
        }).catch(function(err) {
            console.log(4);
        });
}). then( function(users){ console. log( 1);}). catch( function(error){ res. redirect( "/list"); console. log( 2);});

 
  

你可能感兴趣的:(nodejs)