9

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

 3 years ago
source link: https://www.v2ex.com/t/794925
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

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

  Smash · 1 天前 · 2096 次点击

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

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

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

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

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

32 条回复    2021-08-11 22:33:29 +08:00

wszgrcy

wszgrcy   1 天前   ❤️ 1

typeorm

Smash

Smash   1 天前

@wszgrcy #1 为什么我 github 首页搜索 orm,过滤 typescript,居然没在第一页 🐶

des

des   1 天前 via iPhone   ❤️ 1

prisma

randomboi

randomboi   1 天前   ❤️ 1

prisma yyds

Cbdy

Cbdy   1 天前 via Android   ❤️ 1

Sequlize

SolidZORO

SolidZORO   1 天前 via iPhone   ❤️ 4

推荐 Sequelize,TS 也有对应版本,nest 也有官方的 plugin 。

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

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

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

个人很喜欢 Laravel,主要是喜欢他的 ORM Eloquent,只可惜 PHP 强类型还不堪用,并且一些业务要使用 Eletron,才勉为其难的使用上了 nest + Sequelize 。

DaTuDou

DaTuDou   1 天前   ❤️ 1

Prisma + 1

yoa1q7y

yoa1q7y   1 天前

@des #3
@randomboi #4 看了下 prisma 的 open issues 有 1200+ 😂

joyqi

joyqi   1 天前

一直用 Sequlize

mscststs

mscststs   1 天前

ORM 简直深坑,现在顶多用 Knex 做一下语法辅助。

kiddyu

kiddyu   23 小时 54 分钟前

@SolidZORO #6 adonisjs 不知道怎么样

SolidZORO

SolidZORO   23 小时 25 分钟前 via iPhone

@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

mufeng   15 小时 22 分钟前 via iPhone

Sequlize +1

xujiahui

xujiahui   15 小时 8 分钟前

Sequlize

mywaiting

mywaiting   14 小时 59 分钟前

感觉简单写个自己的 SQL CURD 的操作封装就好了,没有必要上 ORM 这一套吧

感觉还是自己手撸原生 SQL 语句最舒服,用了 ORM 的话,它自己定义的语法我还得学一遍

hafung

hafung   14 小时 42 分钟前

eloquent 真的太强了!
有人说不用 ORM 写原生 sql 的,是没写过大项目或者没有重构过吗? sql 到后期根本无法维护

code4you

code4you   14 小时 41 分钟前

Prisma + 1 主要是网站和 studio UI 好看 😁 虽然 issue 1k+

hawei

hawei   14 小时 25 分钟前

应该用 graphQL 的那套,很快很强大

keepeye

keepeye   14 小时 25 分钟前

在 eloquent 面前,go 的几个 orm 也不能打

xd547

xd547   13 小时 43 分钟前

Prisma

4771314

4771314   13 小时 34 分钟前

@SolidZORO typeorm 的坑是有点多

avastms

avastms   13 小时 28 分钟前

小项目根本别用 SQL 数据库,mongodb 不香吗,为什么虐自己

大项目的那个投入和工程师能力,自己写个适合的数据层,靠谱可控

lbunderway

lbunderway   13 小时 21 分钟前

sequelize 应付 crud 完全没问题,复杂的数据统计还是要原生 sql

L1shen

L1shen   12 小时 27 分钟前

简单的直接写 knex 也挺好的

xieren58

xieren58   12 小时 3 分钟前

Prisma + 1

randomboi

randomboi   10 小时 59 分钟前

@SolidZORO adonis 可以的,你用过新版吗

inhal

inhal   10 小时 53 分钟前

前两周试了下 Adonis 5,有 Laravel 的感觉,更早版本没用过。

Smash

Smash   10 小时 35 分钟前

@inhal #27 支持服务端渲染吗?还是一个纯 server 侧的框架

wowbaby

wowbaby   9 小时 45 分钟前

@SolidZORO 同意,前端更新太快,还要各种兼容,轮子太多五花八门,一句话真 TM 累!每次做项目 70%的时间是在搞前端。

dream4ever

dream4ever   9 小时 10 分钟前

@Smash GitHub 的搜索结果默认是按照“Best match”排序的,你切换成按照“Most stars”排序,typeorm 就排第一了。

dream4ever

dream4ever   9 小时 3 分钟前

@yoa1q7y
@code4you
看了看 typeorm,prisma,sequelize,这三个 repo 的 issues 都是 1200+、1300+,哈哈

inhal

inhal   1 小时 40 分钟前 via Android

@Smash 抱歉,我只试写了一下 server api,无法回答这个问题。

Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK