Mongoose
目前比较常见的 MongoDB ORM 框架,官方说法是 ODM 框架,可见对关系型数据库支持一般
- 官网:https://mongoosejs.com/
- 数据库:仅支持 MongoDB
- 编程风格:
- 支持 Promise/async/await
- 基于 JS 内置类型的 Schema 声明
- 基于链式构造的 Query Builder 查询
- 周边技术:
- Typegoose
- https://www.npmjs.com/package/typegoose
- 可以增加 TypeScript 支持,支持使用 Reflect Metadata 自动映射 TS 类型标注
- 热度:周频持续更新,NPM 周下载 70W+
Sequelize
较老牌的 Node.js ORM 框架,相对简易
- 官网:http://docs.sequelizejs.com/
- 数据库:支持关系型数据库(MySQL/MSSQL/PostgreSQL/SQLite)
- 编程风格:
- 支持 Promise/async/await
- 基于自带的一套类型枚举声明
- 基于 JSON 对象的查询方式
- 基于自带的一套操作符描述
- 热度:月频持续更新,NPM 周下载 20W+
Bookshelf
Sequelize 之后出现的 ORM 框架,风格与 Sequelize 较相似,看上去比 Sequelize 易用性高
- 官网:http://bookshelfjs.org/
- 数据库:支持关系型数据库
- 编程风格:
- 基本上是 Eloquent ORM 的 JS 版本
- 支持 Promise/async/await
- 支持基于链式构造的 Query Builder 查询
- 热度:近半年未更新,NPM 周下载 1.7W
TypeORM
基于 Decorator 的 ORM 框架,对 TypeScript 支持较好,同时支持在 JavaScript 中通过手动声明使用,以及 JSON 方式的 Entity 配置声明
- 官网:https://github.com/typeorm/typeorm/
- 数据库:支持关系型数据库,Beta 支持 MongoDB
- 编程风格:
- 基本上是 Hibernate 的 JS 版本
- 支持 Promise/async/await
- 支持基于链式构造的 Query Builder 查询
- 支持 CLI 工具
- 热度:周频持续更新,NPM 周下载 2.8W
参考链接:https://github.com/CyanSalt/notebook/issues/12
参考链接:https://www.jianshu.com/p/07141d53f119