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

有没有简单易用的 nodejs 框架可实现上述提到的功能,例如参数自动校验,只需事先定义参数格式即可。分页等功能也能自动加上。

这几个都是很基础的需求吧,是个框架都有中间件支持。

非要说我会推荐 hapi + Joi 验证 + bissle 分页

没注意要接 ORM ,那基本只有 Nest 可选了🐶虽然并不简单易用(?)

这些功能大厂都是手写 sql ,不会用任何 orm 的东西

貌似大厂出来的都喜欢 Hapi 什么时候试试

硬要说的话 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 也是但是太丑了)。

很多框架都支持,如果让我选,我就选 ThinkJS ,写增删改查很快,感觉完美符合楼主要求。Logic 层配置一下验证方式就行了。

感觉 Graphql 就是为了解决这种麻烦而诞生的,详搜 Apollo graphql

strapi

directus ,不够可以在 hook 加一层自己的校验

express 老牌好用,资料多,用的人多

strapi +1

推荐一个:Sequelize 。你说的验证、分页都支持,定义好模型就可以用了,不用接触 SQL 。

今年用了 nestjs + prisma 感受非常好

strapi

同 nestjs + prisma

nestjs + prisma

strapi 或 feathersjs

前段时间就是看的 nestjs 和 prisma ,api 部署到 vercel ,再配个 planetScale 的数据库服务,全部 serverless 化,还挺好玩的。

如果限定是 nodejs 的话,推荐 nestjs 。但是对前端来说并不容易。

推荐一下 adonisjs ,按照 Laravel 思路做的。会省很多时间。

手写个自动生成 SQL 的工具就可以了

看了这个帖子我放心了,自家的几板斧依然领先。

LZ 说的这几个基本都到点子上了,本质上想要的就是 dto ,再加上周边的一些设施,声明式验证之类的。
唯一摸到门槛的就是 nest.js ,其他都在外面刮痧。

nestjs 必须有一席之地
orm typeorm 和 prisma 都很香 crud 一把梭

上面好些个推荐 nestjs ,我觉得更多的是跟风,nestjs 搞得太复杂了,学着 spring 那套,但是比 spring 还烦琐。
其实 fastify + prisma 就很好:简单明了、心智负担低。
看看这里:www.prisma.io/fastify

nestjs ,虽然分的比较细繁琐,但是只要写好一个模块其他的都可以复制粘贴了,越用越爽

不管啥语言 crud 框架单表查询还行,复杂一点的连表很想死,不连表就只能多次查询,sql+orm 越用越难受,如果有重来的机会直接裸 mongodb 最适合 js ,复杂点的 mongo 查询相当于在写 ast ,但比起 sql 还是舒服点,至少我抽象和封装的对象直接是 ast ,而不是拼装字符串。

fastify+sequelize

我能说我还是用 access 和 excel 在管理远程 sqlserver 么,感觉一点都不 fashion ,但真的好用,哈哈

typeorm 老哥们都不推荐吗