请教 Node.js 后端框架的选择

2022-03-28 17:48:16 +08:00
 Chism
之前一直做前端,没用过 nodeJS 后端框架

目前需求是这样:
1. 后端数据库存储数据,同时给 C 端前端提供 api 进行 curd
2. 后端需要对接第三方 api
3. 给 B 端提供后台管理网页

哪个框架满足上述需求并且易于上手?

背景:有 thinkphp 开发后端的经验、有简单的 nodejs 脚本开发经验

选 node 不选 php 原因:npm 比 composer 丰富;很久没碰 php ;对 js 语言足够熟练
15869 次点击
所在节点    Node.js
75 条回复
lmshl
2022-03-29 12:08:36 +08:00
再给你一个我自己的热身项目,就是用我上面说的技术栈,并且还支持 Serverless 部署。
guanhui07
2022-03-29 12:10:18 +08:00
koa2
boxz
2022-03-29 12:16:35 +08:00
nestjs ,要 crud 搭配 nestjs-query ( graphql )或 @nestjsx/crud ( restful )
gstarcad
2022-03-29 14:26:15 +08:00
轻量底层框架:fastify 、express
上层框架:NestJS

其它观点同#39 楼
qq30545
2022-03-29 14:28:58 +08:00
我也新手
推荐 Fastify + Cloud Run
Express 就算了吧
1543544726zy
2022-03-29 14:29:40 +08:00
koa + mogoose
byte10
2022-03-29 14:34:17 +08:00
目前需求是这样:
1. 后端数据库存储数据,同时给 C 端前端提供 api 进行 curd
2. 后端需要对接第三方 api
3. 给 B 端提供后台管理网页

你直接上 koa2 ,吊打所有框架。这样的业务最好用 koa2 了,非常 nice 的一个框架,核心代码就 100 行,牛逼就是了。脚本语言简单。koa2 的比较基础,迁移到 serverless ,云函数,云小程序,都非常的方便。
fstar
2022-03-29 14:36:15 +08:00
Nest.js

Express 和 Koa2 就算了,过时了,过于底层,好比你用 jq 写网站一样过于简陋。社区也不活跃。
qfdk
2022-03-29 15:02:29 +08:00
还是 Express 吧,说实话这个写起来还是很舒服的,我把公司 微服务都换成 Express 了。 还是 Express 好用,Nest.js 上层的东西太多了。 问题很大,如果搞不明白 Nest.js 里面的 运行原理 感觉就跟 Spring Boot 莫名其妙的的升个级就挂了。。。 用 Express 的话 逻辑大多都是自己的,然后项目结构合理,很方便的。
daizige
2022-03-29 15:34:12 +08:00
@star7th 非常赞同
jsq2627
2022-03-29 15:36:23 +08:00
不妨试试 remix.js ,虽然比较新但是确实很棒
terranboy
2022-03-29 16:04:51 +08:00
@jsq2627 REMIX.RUN 吗 他算是个全栈框架 输出 API 不太适合,按照楼主的需求 简单点的 NEXT.JS+PRISMA 就能胜任
helloworld1024
2022-03-29 17:04:17 +08:00
建议你放弃使用 nodejs 做后端
zy445566
2022-03-29 17:10:36 +08:00
用 express ,其实不如用 koa 更现代一点点。不过要大而全集成可以试试 nest.js 。用 node.js 后端开发 5 年了,很爽
LawlietZ
2022-03-29 17:27:32 +08:00
egg
OxO
2022-03-29 17:41:55 +08:00
原是 Javaer ,不喜欢在 node 系也使用 Spring 注解那一套东西,目前在用 koa2 + mongoose + ts ,挺喜欢的。
vincentxue
2022-03-29 17:51:02 +08:00
我同意 #29 的观点。

最适合你的框架应该就是 egg.js ,因为它足够简单但是功能又很强,已经封装了绝大多数日常需要的功能。底层就是 koa ,如果你要从 koa 或者 express 这些起步,光是搭架子都得很久。用 egg 的话新建一个项目就可以直接开撸了,cluster 啥的也都帮你弄好了,你只需要一句命令的的事。orm 用 sequelize 之类的就好了。

nest 那些是有学习成本的,你需要了解它的概念,还得自己搭架子等等。

如果你是开一个大的长期的项目,那可以考虑用 nest ,毕竟是流行趋势,趋势不可挡。

db 用什么是跟你的业务有很大关系的,如果你不知道选什么,就选 mysql 好了。
pkoukk
2022-03-29 18:09:31 +08:00
@Chism pg 也支持 json 。
但是一般不需要存 raw json 进去,找一些 orm 框架更合适。
存一堆 json 进 mongo 里,最常见到的事情就是里面有一大堆奇怪的数据,一会儿这条缺字段,一会儿那条字段数据格式不对,处理数据处理到头秃
immortalz
2022-03-29 18:30:31 +08:00
eggjs ,正如 57 楼说的一样,eggjs 约定式的方式,很多东西都不用纠结中间件怎么技术选型,不同中间件之间混搭踩坑之类的
Chism
2022-03-29 18:38:43 +08:00
@pkoukk
确实有这个问题,我还遇到过 input 标签的数字直接插入导致 mongo 里本来放 number 的一部分是 string

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

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

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

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

© 2021 V2EX