V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iqoo
V2EX  ›  程序员

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

  •  
  •   iqoo · 2021-11-28 12:01:42 +08:00 · 5224 次点击
    这是一个创建于 851 天前的主题,其中的信息可能已经有所发展或是发生改变。
    后端的功能是服务管理,有几十个增删改查的接口,很多接口都有时间、IP 、备注等参数,有些是必须有些是可选。如果每个接口都手动判断参数是否存在、长度是否正确、格式是否合法,写起来很累赘。最后还要数据库执行,很多接口需要分页,手动实现 SQL 也很累赘。

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

    非要说我会推荐 hapi + Joi 验证 + bissle 分页
    kidonng
        2
    kidonng  
       2021-11-28 12:21:21 +08:00
    没注意要接 ORM ,那基本只有 Nest 可选了🐶虽然并不简单易用(?)
    passer9527
        3
    passer9527  
       2021-11-28 13:16:54 +08:00 via iPhone
    这些功能大厂都是手写 sql ,不会用任何 orm 的东西
    dartabe
        4
    dartabe  
       2021-11-28 13:16:58 +08:00
    貌似大厂出来的都喜欢 Hapi 什么时候试试
    aristolochic
        5
    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
        6
    lscho  
       2021-11-28 13:26:18 +08:00
    很多框架都支持,如果让我选,我就选 ThinkJS ,写增删改查很快,感觉完美符合楼主要求。Logic 层配置一下验证方式就行了。
    mchl
        7
    mchl  
       2021-11-28 14:37:49 +08:00 via iPhone
    感觉 Graphql 就是为了解决这种麻烦而诞生的,详搜 Apollo graphql
    henryhu
        8
    henryhu  
       2021-11-28 14:39:26 +08:00
    strapi
    shuimugan
        9
    shuimugan  
       2021-11-28 15:04:26 +08:00 via Android
    directus ,不够可以在 hook 加一层自己的校验
    pengtdyd
        10
    pengtdyd  
       2021-11-28 15:10:43 +08:00   ❤️ 2
    express 老牌好用,资料多,用的人多
    tousfun
        11
    tousfun  
       2021-11-28 15:29:05 +08:00 via iPhone
    strapi +1
    pendulum
        12
    pendulum  
       2021-11-28 16:46:36 +08:00
    推荐一个:Sequelize 。你说的验证、分页都支持,定义好模型就可以用了,不用接触 SQL 。
    Terry05
        13
    Terry05  
       2021-11-28 18:28:15 +08:00
    今年用了 nestjs + prisma 感受非常好
    guanhui07
        14
    guanhui07  
       2021-11-28 19:24:30 +08:00 via iPhone
    strapi
    lodisy
        15
    lodisy  
       2021-11-28 19:34:36 +08:00 via Android
    同 nestjs + prisma
    code4you
        16
    code4you  
       2021-11-28 19:45:04 +08:00
    nestjs + prisma
    dragonszy
        17
    dragonszy  
       2021-11-28 20:22:32 +08:00
    strapi 或 feathersjs
    lzgshsj
        18
    lzgshsj  
       2021-11-28 20:30:50 +08:00
    前段时间就是看的 nestjs 和 prisma ,api 部署到 vercel ,再配个 planetScale 的数据库服务,全部 serverless 化,还挺好玩的。
    codingBug
        19
    codingBug  
       2021-11-28 20:56:45 +08:00 via Android
    如果限定是 nodejs 的话,推荐 nestjs 。但是对前端来说并不容易。
    lemayi
        20
    lemayi  
       2021-11-28 21:28:12 +08:00
    推荐一下 adonisjs ,按照 Laravel 思路做的。会省很多时间。
    wanguorui123
        21
    wanguorui123  
       2021-11-28 21:44:50 +08:00
    手写个自动生成 SQL 的工具就可以了
    EPr2hh6LADQWqRVH
        22
    EPr2hh6LADQWqRVH  
       2021-11-28 22:59:50 +08:00
    看了这个帖子我放心了,自家的几板斧依然领先。

    LZ 说的这几个基本都到点子上了,本质上想要的就是 dto ,再加上周边的一些设施,声明式验证之类的。
    唯一摸到门槛的就是 nest.js ,其他都在外面刮痧。
    theohateonion
        23
    theohateonion  
       2021-11-28 23:03:04 +08:00
    nestjs 必须有一席之地
    orm typeorm 和 prisma 都很香 crud 一把梭
    hutoer
        24
    hutoer  
       2021-11-29 08:57:29 +08:00
    上面好些个推荐 nestjs ,我觉得更多的是跟风,nestjs 搞得太复杂了,学着 spring 那套,但是比 spring 还烦琐。
    其实 fastify + prisma 就很好:简单明了、心智负担低。
    看看这里:www.prisma.io/fastify
    duduaba
        25
    duduaba  
       2021-11-29 10:08:09 +08:00
    nestjs ,虽然分的比较细繁琐,但是只要写好一个模块其他的都可以复制粘贴了,越用越爽
    YUyu101
        26
    YUyu101  
       2021-11-29 10:40:27 +08:00
    不管啥语言 crud 框架单表查询还行,复杂一点的连表很想死,不连表就只能多次查询,sql+orm 越用越难受,如果有重来的机会直接裸 mongodb 最适合 js ,复杂点的 mongo 查询相当于在写 ast ,但比起 sql 还是舒服点,至少我抽象和封装的对象直接是 ast ,而不是拼装字符串。
    ChangJingli
        27
    ChangJingli  
       2021-11-29 17:42:40 +08:00
    fastify+sequelize
    wangweiggsn
        28
    wangweiggsn  
       2021-11-29 18:04:37 +08:00
    我能说我还是用 access 和 excel 在管理远程 sqlserver 么,感觉一点都不 fashion ,但真的好用,哈哈
    dany813
        29
    dany813  
       2021-11-30 10:07:35 +08:00
    typeorm 老哥们都不推荐吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1266 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 17:51 · PVG 01:51 · LAX 10:51 · JFK 13:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.