话说大家用node开发后端都用过哪些orm?
发布于 3 年前 作者 Matrixbirds 8014 次浏览 来自 问答

最近用了sequelize感觉各种日狗。。想咨询下各位大佬都用过哪些orm以及用之后的感言。

17 回复

都也一般般,sequelize功能还算可以,文档比较烂。

@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算不算。

@mosaic101 感觉mongoose挺好使得。

@stonephp sequelize文档还烂,那你不用看文档了

mongoose …其他,还有自己在mysql这个模块上扩充了json -》sql-》mysql的功能,,,也算orm 吧

@simdm Sequelize 我也看,不过4、5年了,基本上常见的90%的功能我都知道如何使用了。 Sequelize的使用问题,可以问我。

loopback orm ,自带超神光环

回到顶部