为 Node.js 选择 ORM 有多难?或者 Node.js 缺乏成熟的 ORM

Mik*_*ike 7 orm node.js typeorm mikro-orm

我有一个生产项目要开发。这是一个电子商务网站。我目前的堆栈:

  1. 节点.js
  2. 打字稿
  3. PostgreSQL

现在我必须为这个项目选择一个 ORM。我想我有两个选择:

  1. 类型ORM。我以前用过这个 ORM。这是一款不错的稳定软件,但 TypeORM 的维护问题已经有一段时间了。我不确定这个 ORM 的未来。
  2. 米克罗ORM。TypeORM 缺少一些有用的功能,如 @Filters(范围)和批量订阅者,而另一方面 MikroORM 具有这些功能或替代品(请参阅过滤器批量订阅者的替代品)。但 MikroORM 不那么受欢迎,而且相对较新。而且 MikroORM 的许多功能仍处于alpha 阶段

概括

缺乏维护和功能但稳定的 ORM 或具有良好维护和新功能但未经实战测试的 ORM。哪个选项更好?或者也许有一些替代方案?

小智 6

您可以查看Sequelize - https://sequelize.org,它支持 TypeScript,但在我看来语法有点难看。三者中,Sequelize 是最为成熟的 ORM。

TypeORM非常好,但有一些像这样的主要错误 - https://github.com/typeorm/typeorm/issues/3095。我遇到了与保存一对多关系相关的相同或可能类似的问题,我认为这是每个 ORM 最重要的特性之一,它必须正常工作。

我使用了一段时间MikroORM - 再次有一些小问题,幸运的是将在第 4 版中修复。总的来说,大多数功能都可以正常工作,几乎所有我遇到的问题在 github 上报告后都很快得到解决。


小智 6

我推荐Prisma,这是一个新的 NodeJS ORM,具有出色的功能和文档。