最近用了sequelize感觉各种日狗。。想咨询下各位大佬都用过哪些orm以及用之后的感言。
都也一般般,sequelize功能还算可以,文档比较烂。
bookshelf
From KoaHub.js
@einsqing 看了文档感觉very cool
弱弱的问句,orm是啥。 自豪地采用 CNodeJS ionic
用过node-orm2,bookshelf,sequelize,现在sequelize的生态较其他的好,用的人多!一开始看文档都是各种日狗,说到底是英文不行!
@JZLeung 对象关系映射(Object Relation Mapping),把关系型数据库映射成对象模型,简单点讲就是一条数据看做一个对象,字段就是对象属性!
bookshelf 相比之下写着比较爽一点
sequelize 处理简单的我感觉还不错,但复杂的sql就不太方便了。这可能是orm的通病吧。
如果是 koa@1 我们用 https://github.com/d-band/koa-orm ,封装的 sequelize 和 squel
支持多数据库
const configs = [{
name: 'product',
modelPath: join(__dirname, 'models/product'),
db: 'db_product',
username: 'root',
password: 'pass',
dialect: 'mysql',
host: '192.168.1.11',
port: 3306
}, {
name: 'project',
modelPath: join(__dirname, 'models/project'),
db: 'db_project',
username: 'root',
password: 'pass',
dialect: 'mysql',
host: '192.168.1.22',
port: 3306
}];
const orm = require('koa-orm')(configs);
app.use(orm.middleware);
// 使用方法
app.use(function* (next) {
const { Product } = this.orm('product');
const { Project } = this.orm('project');
const products = yield Product.findAll();
const projects = yield Project.findAll();
});
可以直接写 SQL,支持裸写 SQL,也支持 SQL query api
// SQL query
const foos = yield this.orm().sql
.select()
.field('name')
.field('pass')
.from('foo')
.query();
const foos = yield this.orm()
.query('select name,pass from foo;');
@mosaic101 不知道mongoose算不算。
@JZLeung 算的
waterline
@mosaic101 感觉mongoose挺好使得。
@stonephp sequelize文档还烂,那你不用看文档了
mongoose …其他,还有自己在mysql这个模块上扩充了json -》sql-》mysql的功能,,,也算orm 吧
@simdm Sequelize 我也看,不过4、5年了,基本上常见的90%的功能我都知道如何使用了。 Sequelize的使用问题,可以问我。
loopback orm ,自带超神光环