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
