脏兮兮 發表於 2020-5-19 16:03:00

Node.js ORM 框架对比

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


</div>
<div id="MySignature" role="contentinfo">
    今天你学习了吗!!!<br><br>
来源:https://www.cnblogs.com/nayek/p/12917504.html
頁: [1]
查看完整版本: Node.js ORM 框架对比