官网
http://docs.sequelizejs.com/en/latest/
基于orm的框架
查询
sequelize 没有封装实例集合,所以查询返回是集合时,会是一个实例的数组,此时需要手动遍历去toJSON()
db
.bill
.findAll({where:{id:{lt:3}}})
.then(result => result.map(v => v.toJSON()));
插入
db
.bill
.create({order_no:101,deal_way:1,reason:'payback'})
添加
db
.bill
.update({order_no:201,deal_way:1321,reason:'pay no back'},{where:{id:154}})
.then(result => console.log(result))
.catch(err => console.log(err));
删除
db
.bill
.findOne()
.then(bill_instance => { return bill_instance.destroy();
})
事务
sequelize.transaction().then(t => { return db.bill.create({order: 100001, deal_way : 'wadfads' }, {transaction: t})
.then(()=> {return db.bill.create({order: 100002, deal_way: 'unpan' }, {transaction: t});})
.then(()=>t.commit())
.catch(()=>t.rollback());
})
.then(()=>console.log(' transaction done'))
.catch(err=>console.log(err));
联表
user.js
//类方法
classMethods: {
associate: function(models) {this.hasOne(models.hlr_user,{foreignKey:'user_id'});}
},
hlr_user.js
classMethods:{
associate:function( models) { this.belongsTo(models.user,{foreignKey:'user_id'}); }
}
调用
db
.user
.findOne({
include : [{model:db.hlr_user,attributes:['market_price']}],//与bookshelf不同的是这里不需要写外键
attributes : ['usertype','name']
})
.then(result => console.log(result.toJSON()));