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

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

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

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

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

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