nodejs 有哪些好用的增删改查框架?

2021-11-28 12:01:42 +08:00
 iqoo
后端的功能是服务管理,有几十个增删改查的接口,很多接口都有时间、IP 、备注等参数,有些是必须有些是可选。如果每个接口都手动判断参数是否存在、长度是否正确、格式是否合法,写起来很累赘。最后还要数据库执行,很多接口需要分页,手动实现 SQL 也很累赘。

有没有简单易用的 nodejs 框架可实现上述提到的功能,例如参数自动校验,只需事先定义参数格式即可。分页等功能也能自动加上。
5610 次点击
所在节点    程序员
29 条回复
kidonng
2021-11-28 12:15:49 +08:00
这几个都是很基础的需求吧,是个框架都有中间件支持。

非要说我会推荐 hapi + Joi 验证 + bissle 分页
kidonng
2021-11-28 12:21:21 +08:00
没注意要接 ORM ,那基本只有 Nest 可选了🐶虽然并不简单易用(?)
passer9527
2021-11-28 13:16:54 +08:00
这些功能大厂都是手写 sql ,不会用任何 orm 的东西
dartabe
2021-11-28 13:16:58 +08:00
貌似大厂出来的都喜欢 Hapi 什么时候试试
aristolochic
2021-11-28 13:23:41 +08:00
硬要说的话 Nodejs 或者说 JavaScript 生态感觉就都不怎么擅长干这种元编程的事情,它的宏能力基本全靠社区实现的 acorn / Babel 之类的了。我找了好久都没找到和 Ruby on Rails 生态的 inherited_resources / responders 类似的东西。要说参数自动校验的话,JOI 肯定算一个,还有 Fastify 也鼓励开发者写参数校验(用的是 JSON Schema ),中间件也还算轻量。

至于说数据库执行,我认为都用 JavaScript 了用一个比较正常的 Secure by Default 的 ORM 还是很必要的,没有特殊需要还是别手动生成 SQL 比较好。很久以前我用过 Sequelize ,不过现在的大一统选择或许是 Prisma 吧,尤其 Prisma 基于 Data Mapper 同时还靠 Schema 文件生成 Client 减少样板代码的设计,让受够 Sequelize 用 Active Record 模式的我十分喜欢(我觉得 Active Record 只有 Rails 这样提倡 Fat Model 的才合适,Sequelize 也是但是太丑了)。
lscho
2021-11-28 13:26:18 +08:00
很多框架都支持,如果让我选,我就选 ThinkJS ,写增删改查很快,感觉完美符合楼主要求。Logic 层配置一下验证方式就行了。
mchl
2021-11-28 14:37:49 +08:00
感觉 Graphql 就是为了解决这种麻烦而诞生的,详搜 Apollo graphql
henryhu
2021-11-28 14:39:26 +08:00
strapi
shuimugan
2021-11-28 15:04:26 +08:00
directus ,不够可以在 hook 加一层自己的校验
pengtdyd
2021-11-28 15:10:43 +08:00
express 老牌好用,资料多,用的人多
tousfun
2021-11-28 15:29:05 +08:00
strapi +1
pendulum
2021-11-28 16:46:36 +08:00
推荐一个:Sequelize 。你说的验证、分页都支持,定义好模型就可以用了,不用接触 SQL 。
Terry05
2021-11-28 18:28:15 +08:00
今年用了 nestjs + prisma 感受非常好
guanhui07
2021-11-28 19:24:30 +08:00
strapi
lodisy
2021-11-28 19:34:36 +08:00
同 nestjs + prisma
code4you
2021-11-28 19:45:04 +08:00
nestjs + prisma
dragonszy
2021-11-28 20:22:32 +08:00
strapi 或 feathersjs
lzgshsj
2021-11-28 20:30:50 +08:00
前段时间就是看的 nestjs 和 prisma ,api 部署到 vercel ,再配个 planetScale 的数据库服务,全部 serverless 化,还挺好玩的。
codingBug
2021-11-28 20:56:45 +08:00
如果限定是 nodejs 的话,推荐 nestjs 。但是对前端来说并不容易。
lemayi
2021-11-28 21:28:12 +08:00
推荐一下 adonisjs ,按照 Laravel 思路做的。会省很多时间。

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

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

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

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

© 2021 V2EX