求推荐个 Node.js 的 orm 轮子,看轮子都看花眼了

2021-08-10 21:09:56 +08:00
 Smash

前几天重构了一个开源的项目,还是 golang 好,orm 部分可供我选择得有限.

今天又想重构多年前读大学时写的一个小项目(当时还是 Vue+Laravel5 写的)

想试试 next.js+react 来写,用 docker 部署,可以实现一下服务端渲染,但是需要一个后端的 orm.

但是这 orm 轮子太多了,着实给我看花眼了.

一定要支持 Typescript 的类型提示的,如果轮子是纯 Typescript 写的就更好了.

7400 次点击
所在节点    程序员
38 条回复
wszgrcy
2021-08-10 21:13:33 +08:00
typeorm
Smash
2021-08-10 21:16:36 +08:00
@wszgrcy #1 为什么我 github 首页搜索 orm,过滤 typescript,居然没在第一页 🐶
des
2021-08-10 21:25:38 +08:00
prisma
randomboi
2021-08-10 21:39:57 +08:00
prisma yyds
Cbdy
2021-08-10 21:48:53 +08:00
Sequlize
SolidZORO
2021-08-10 22:01:26 +08:00
推荐 Sequelize,TS 也有对应版本,nest 也有官方的 plugin 。

TypeORM 深度用过,坑十分多,而且新版本难产,repo 不活跃,文档几乎等于没有,差不多有问题都要翻源码解决。

另外就是 prisma 刚用起来会比较兴奋,但…… 该有的问题还是有,而且还多了一层。

看楼主之前用 Laravel,可以很负责的和你说,node 没有一个 ORM 可以和 Eloquent 抗衡,是的哪怕是 Sequelize 也不行,S 的代码量基本是是 E 的两倍以上,如果涉及到 MM 表那就更长了。

个人很喜欢 Laravel,主要是喜欢他的 ORM Eloquent,只可惜 PHP 强类型还不堪用,并且一些业务要使用 Eletron,才勉为其难的使用上了 nest + Sequelize 。
DaTuDou
2021-08-10 22:22:40 +08:00
Prisma + 1
yoa1q7y
2021-08-10 22:33:13 +08:00
@des #3
@randomboi #4 看了下 prisma 的 open issues 有 1200+ 😂
joyqi
2021-08-10 22:40:27 +08:00
一直用 Sequlize
mscststs
2021-08-10 23:54:41 +08:00
ORM 简直深坑,现在顶多用 Knex 做一下语法辅助。
kiddyu
2021-08-11 00:19:21 +08:00
@SolidZORO #6 adonisjs 不知道怎么样
SolidZORO
2021-08-11 00:48:04 +08:00
@kiddyu 不大行。和 Laravel 差距太大,虽然一整套范式给你约定好了,可惜 node 这边没有能打的 ORM 。他那边封装 knex 的 lucas (应该是叫这个吧?)比较拉垮。


其实这些单一好与坏都可以弥补,比如 ORM,没有?那花时间肯定可以写个巨牛逼的出来,但自己一个人造轮子不行啊,还得搞生态。生态太重要了。

PHP 那海量且久经考验的 composer 库是非常厉害的,这个 node 实在比不了,不是质量不质量的问题就是整个社区风气的问题。node 这边的人倾向造轮子,什么不好就造,造完版本号 0.0.x 还没用完就弃了。

如果没弃,就搞断崖式 BC,本来有点生态的,这一弃全没了。经常可以看到有些 lib 的 plugin 对标的不是 2.x.x 这种大版本而是 2.2.x 这个级别的版本。

感觉扯远了,回到正题。现在是 2021 年,node 这边基本可以确定只剩 nestjs 和 express 两个选择了,实在想要性能还多个 fastify 可以选。别的就算了。
mufeng
2021-08-11 08:50:47 +08:00
Sequlize +1
xujiahui
2021-08-11 09:05:05 +08:00
Sequlize
mywaiting
2021-08-11 09:14:06 +08:00
感觉简单写个自己的 SQL CURD 的操作封装就好了,没有必要上 ORM 这一套吧

感觉还是自己手撸原生 SQL 语句最舒服,用了 ORM 的话,它自己定义的语法我还得学一遍
hafung
2021-08-11 09:31:12 +08:00
eloquent 真的太强了!
有人说不用 ORM 写原生 sql 的,是没写过大项目或者没有重构过吗? sql 到后期根本无法维护
code4you
2021-08-11 09:32:38 +08:00
Prisma + 1 主要是网站和 studio UI 好看 😁 虽然 issue 1k+
hawei
2021-08-11 09:47:45 +08:00
应该用 graphQL 的那套,很快很强大
keepeye
2021-08-11 09:48:40 +08:00
在 eloquent 面前,go 的几个 orm 也不能打
xd547
2021-08-11 10:29:57 +08:00
Prisma

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/794925

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX