Node.js ORM 框架对比

Mongoose

目前比较常见的 MongoDB ORM 框架,官方说法是 ODM 框架,可见对关系型数据库支持一般

  • 官网:https://mongoosejs.com/
  • 数据库:仅支持 MongoDB
  • 编程风格:
    • 支持 Promise/async/await
    • 基于 JS 内置类型的 Schema 声明
    • 基于链式构造的 Query Builder 查询
  • 周边技术:
  • 热度:周频持续更新,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

posted @ 2020-05-19 16:03  Nayek  阅读(9220)  评论(0编辑  收藏  举报