V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
inSpring
V2EX  ›  Node.js

做个调研,兄弟们,你们公司后端框架目前用的是哪个? Express、Koa、NestJS?

  •  1
     
  •   inSpring · 262 天前 · 17024 次点击
    这是一个创建于 262 天前的主题,其中的信息可能已经有所发展或是发生改变。
    131 条回复    2024-09-08 10:26:21 +08:00
    1  2  
    YellowDog7
        1
    YellowDog7  
       262 天前   ❤️ 6
    nestjs
    EJW
        2
    EJW  
       262 天前   ❤️ 1
    Express
    zTonyski
        3
    zTonyski  
       262 天前   ❤️ 2
    honojs astro
    o562dsRcFqYl375i
        4
    o562dsRcFqYl375i  
       262 天前
    Express
    ygweric
        5
    ygweric  
       262 天前
    nest
    yKXSkKoR8I1RcxaS
        6
    yKXSkKoR8I1RcxaS  
       262 天前   ❤️ 3
    后端用 NodeJS ?咋想的?
    colorcat
        7
    colorcat  
       262 天前   ❤️ 6
    @Seria nodejs 咋了,大量公司都在用 nodejs ,生态活跃,组件众多。
    estk
        8
    estk  
       262 天前 via iPhone
    Koa 不是 Express 的升级版吗?同一个作者
    Oats
        9
    Oats  
       262 天前   ❤️ 1
    eggjs
    isbase
        10
    isbase  
       262 天前   ❤️ 1
    业务系统一般是 springboot
    liumao
        11
    liumao  
       262 天前
    spring boot 现在已经不流行了吗
    pigf
        12
    pigf  
       262 天前
    问就是 springboot
    yul24
        13
    yul24  
       262 天前
    @colorcat 我看招人 nodejs 没几个岗位的
    NessajCN
        14
    NessajCN  
       262 天前
    nestjs 一股 java 味儿,用这个还不如上 java spring 咧
    jixiaopeng
        15
    jixiaopeng  
       262 天前
    都用,现在用 nextjs
    mightybruce
        16
    mightybruce  
       262 天前
    node.js 不适合做复杂的后端逻辑, 做个各个接口聚合层还是比较多的,在大厂的定位就是前端和 API 聚合。
    如果是初创公司 用 Node.js 一把梭 前后端一起写的也很多。

    全栈还是看看 nestjs 、nustjs 和 nextjs
    epiloguess
        17
    epiloguess  
       262 天前 via Android   ❤️ 3
    express 挺好的,就是万年不更新,也不是自带 battery ,nest 其实用的人不多,只有 express 的 1/10 ,选技术也要考虑一下以后招人难不难
    https://npmstats.com/tags/node.js%20framework
    dlmy
        18
    dlmy  
       262 天前
    Java 已死?你好歹也提一嘴啊!

    后端语言:Java
    后端框架:Spring 全家桶
    jarontai
        19
    jarontai  
       262 天前 via iPhone
    koa + ts + 自研脚手架,nestjs 应该挺好,但感觉还是太重了,最终选择对 koa 进行简单封装定制
    qiaobeier
        20
    qiaobeier  
       262 天前   ❤️ 2
    wordpress
    Al0rid4l
        21
    Al0rid4l  
       262 天前
    轻量的就 fastify, hono, elysia(Bun)三选一, 重的就 Nestjs, Nextjs, Nuxtjs
    ck65
        22
    ck65  
       262 天前 via iPhone
    Nest.js
    leehome
        23
    leehome  
       262 天前
    nest.js
    june4
        24
    june4  
       262 天前
    koa + ts
    简单,够用,无负担
    gml
        25
    gml  
       262 天前   ❤️ 1
    laravel
    lxzxl
        26
    lxzxl  
       262 天前   ❤️ 14
    @isbase @pigf @dlmy 人家发在 Node.js 节点下,你们凑什么热闹?
    maymay5
        27
    maymay5  
       262 天前
    dotnet mvc
    lujiaxing
        28
    lujiaxing  
       262 天前
    asp.net core
    yagamil
        29
    yagamil  
       262 天前   ❤️ 2
    express.
    国外公司。
    说实话,国内以 java 为傲,实际到了国外,你会发现,用 node.js 的要比 java 多几倍。
    meteor957
        30
    meteor957  
       262 天前
    koa
    zuosiruan
        31
    zuosiruan  
       262 天前
    真有这么多的 node 啊,我工作到现在就没见过两个 node 的
    RRRoger
        32
    RRRoger  
       262 天前
    express + typeorm
    shuimugan
        33
    shuimugan  
       261 天前   ❤️ 7
    用了好多年的 Nest.js 了,大概从 6.x 用到现在的 10.x ,也没什么大变更。
    选 Nest.js 看中的是 TypeScript 优先,然后集成了 class-validator 可以开箱即用。
    其它自己集成的什么 http client 、数据库、缓存、消息队列、不喜欢就自己糊一个。
    至于它的依赖注入,除了控制器和模块这一层,service 层你都可以不用依赖注入,完全走静态函数,反正 js 这种脚本语言可以在运行时修改 class 的 method ,mock 起来非常简单。
    最大规模试过在 30 个 4c8g 的 contabo vps 上用 k3s 部署爬虫,套个 rancher 面板,部署一年多,稳如狗,用 DaemonSet 跑网络 IO 相关的操作,全流式操作,内存占用两百多兆,每个节点每月 32T 流量吃到饱。分析计算用 Deployment ,完全的 IO 和计算分离。
    至于 web api ,现在用 Nest.js + Supabase ,日常内存占用也就 90MB 左右,需要事务那就换 Prisma ,内存占用高一些,150MB 左右。
    结合 pkg 可以把项目打包成单个二进制文件塞到容器里,一般就 70MB 左右,冷启动贼快,丢到 1c1g 的容器里都算是打很富裕的仗了。

    至于现在,我在把 Nest.js 的程序结合 AI 迁移到.Net 上…… 现在迁移了一个应用,确实很香。
    Arguments
        34
    Arguments  
       261 天前 via iPhone
    Adonis 存在感这么弱吗😅
    BBCCBB
        35
    BBCCBB  
       261 天前
    spring
    shuimugan
        36
    shuimugan  
       261 天前
    @Arguments AdonisJS 前面的大版本不支持 TypeScript ,而且是抄的 Laravel 的设计。然而 Laravel 抄的是 Ruby on Rails ,结果没抄到精髓,AdonisJS 这波操作属于把别人消化到一半的东西吃了过来……只能说 AdonisJS 适合 Laravel 用户去使用了。
    BeiChuanAlex
        37
    BeiChuanAlex  
       261 天前
    几万用户就了不起了,用 node 合适。
    Arguments
        38
    Arguments  
       261 天前 via iPhone
    @shuimugan 哇,居然有知道 adonis 的,感觉很小众。我是从 v5 版本开始了解的,看中大而全,什么都有,环境也都配好了,简单配置就能出活。适合快速开发。实在受不了 express 和 koa 到处找库,质量还良莠不齐🥹
    Selenium39
        39
    Selenium39  
       261 天前 via iPhone
    之前公司 koa 现在公司 nestjs
    awalkingman
        40
    awalkingman  
       261 天前
    @gml 最好的语言是吧
    momo24672
        41
    momo24672  
       261 天前
    用 Koa 吧
    @yagamil 人在国外,用 java 的还是比 nodejs 多几倍
    junsongyoung
        42
    junsongyoung  
       261 天前
    nestjs \ midwayJS \ nuxtjs
    IvanLi127
        43
    IvanLi127  
       261 天前
    @Seria 除了国内开发者数量比不过别的平台,还有啥理由是不能选 node.js 的?
    fuyun
        44
    fuyun  
       261 天前
    @epiloguess 拿 nestjs 和 express 比?咋不拿 express 和 nodejs 比?
    Loserzhu
        45
    Loserzhu  
       261 天前
    公司项目 express koa2 nestjs(fastify), jvm 系的 groovy(grails) java kotlin scala 都有在用🐶
    sketcherly
        46
    sketcherly  
       261 天前 via Android
    看见 springboot 我就舒服了
    loveshuyuan
        47
    loveshuyuan  
       261 天前   ❤️ 1
    fastify
    ghjh
        48
    ghjh  
       261 天前 via Android   ❤️ 1
    历史原因,现在是 .Net Core 和 SpringBoot
    wusheng0
        49
    wusheng0  
       261 天前 via Android
    nest
    nomagick
        50
    nomagick  
       261 天前 via Android
    自己写的,依赖自动管理,dto ,自动 openapi 文档和自动实例化,自动参数验证
    dj721xHiAvbL11n0
        52
    dj721xHiAvbL11n0  
       261 天前
    就我一个,想用啥用啥
    qloog
        53
    qloog  
       261 天前   ❤️ 1
    后端:Go ,
    后端框架: https://github.com/go-eagle/eagle

    如果使用 node 相关的框架,就是 Next.js 了
    MrDarnell
        54
    MrDarnell  
       261 天前
    我喜欢强大的、重的 ,毫不犹豫 Nest.js ,其他几个太轻了,稍微复杂点的事情都得各种集成
    singularity9866
        55
    singularity9866  
       261 天前
    @liumao Spring Boot 不流行 现在流行什么哦
    zhangxh1023
        56
    zhangxh1023  
       261 天前   ❤️ 1
    midway.js
    项目小,纯好玩儿
    Dylaan
        57
    Dylaan  
       261 天前
    Express 、Laravel
    archergu
        58
    archergu  
       261 天前   ❤️ 1
    nest.js ,这货真的好用,我甚至写 electron 时都要带一个 nest.js 在主进程。

    搞了一些小模板:
    vue+nestjs: https://github.com/ArcherGu/fast-vite-nestjs-electron
    vue+个人依赖注入小框架: https://github.com/ArcherGu/fast-vite-electron
    react+nestjs: https://github.com/ArcherGu/vite-react-nestjs-electron

    还有一套自己搞的 monorepo 模板:
    https://github.com/Doubleshotjs/template-react-nest
    https://github.com/Doubleshotjs/template-vue-nest
    wdold
        59
    wdold  
       261 天前
    是我井底之蛙了,一直以为 java 是后端的主流
    xiuming142857
        60
    xiuming142857  
       261 天前
    后端:go 主要用 go-zero 、gin 前端 vue.js
    wizzer
        61
    wizzer  
       261 天前
    lstz
        62
    lstz  
       261 天前 via Android   ❤️ 1
    next.js

    这个框架拿来写 ssr 超级酷,除了后台 job 写起来怪怪的,其他都很不错,最酷的还是用 server action 这种 seamless 的前后端方案

    关于内存占用,我相信 nextjs 也是专门做过优化了,我写了一大坨代码和库,也只占用了 30mb ,这对于 Java 来说已经超级可爱了

    我写了个开源项目,可供参考一下 https://github.com/work7z/LafTools
    反正我是很推荐 nextjs 的
    blur1119
        63
    blur1119  
       261 天前
    @lstz 兄弟说话咋有点外国翻译腔的味道
    CodeCodeStudy
        64
    CodeCodeStudy  
       261 天前
    用 midwayjs
    express, koa 都太简单了,之前试过 egg ,还行,但是不是 typescript 的。
    后面试了下 midwayjs ,是 typescript 的,功能挺齐全的,也很容易入手。
    wunonglin
        65
    wunonglin  
       261 天前
    @NessajCN #14

    不会 java 啊问题是
    Zenon
        66
    Zenon  
       261 天前
    Django
    NessajCN
        67
    NessajCN  
       261 天前
    @wunonglin 那就更不该用 nestjs 了。不是身心全部 java 形状的谁受得了 nestjs 那股 oop 啰嗦劲儿
    zhwithsweet
        68
    zhwithsweet  
       261 天前
    fastify
    fenglirookie
        69
    fenglirookie  
       261 天前
    @lstz 你们的 nextjs 是怎么做前后端数据同步的呢?比如我在 APP 中打开一个网页,这个 webview 在 header UA 中注入了一个数据 country=AU ,我在后端接收到这个 country=AU 之后怎么在 client 的前端页面也取到这个 country=AU ?
    o562dsRcFqYl375i
        70
    o562dsRcFqYl375i  
       261 天前
    @blur1119 HHHH 我就说好像哪里怪怪的
    fenglirookie
        71
    fenglirookie  
       261 天前
    @archergu 有没有尝试过将 nextjs 塞到 nestjs 中?
    wunonglin
        72
    wunonglin  
       261 天前
    @NessajCN #67 但是并没有第二个全家桶框架可以选问题是,要是有选择,肯定不会是 nestjs
    lstz
        73
    lstz  
       261 天前 via Android
    @blur1119 抱歉....外企呆多了,我的语文水平急剧退化,已经在改正了
    lstz
        74
    lstz  
       261 天前 via Android
    @fenglirookie

    对这种情况,我记得,nextjs 首先可以通过 middleware 拿到 header 值,然后保存到 nextjs 的一个 context 里。在 server component 就能从 context 里读值出来,并且传给 client component 的 props 里
    lstz
        75
    lstz  
       261 天前 via Android
    对于那些看不起 nodejs 作为后端语言的朋友,我尊重并且理解他们以往的偏见...

    然后,在 typescript 和 node 最近几个大版本的更新来看,绝大多数 99%的程序员都很少在 nodejs 遇到瓶颈,在近乎 99%的场景 nodejs 都可堪当大任


    现在写 nodejs ,很少能遇到性能问题了
    Torpedo
        76
    Torpedo  
       261 天前
    @epiloguess #17 这种下载量不准的。express 、react 、vue 这些都大量被用到文档、静态生成器、devserver 里
    Binwalker
        77
    Binwalker  
       261 天前
    我会说日本还有大量在用 ruby on rails 的么
    dawenxi11
        78
    dawenxi11  
       261 天前
    nestjs 搭配 typeorm 感觉挺香的,不用写 sql 了,实体定义好了自动生成表,增删改查非常方便。用这个给两个客户写的后台都上线了。
    SHF
        79
    SHF  
       261 天前
    koa 最好
    glogo
        80
    glogo  
       261 天前
    ASP.NET Core or ABP
    fenglirookie
        81
    fenglirookie  
       261 天前
    @lstz 我想问的就是 怎么传给 client component
    raptor
        82
    raptor  
       261 天前
    一个都没听说过,敝司 springboot
    lstz
        83
    lstz  
       261 天前 via Android
    @fenglirookie 我理解你在 client component 外面一层应该有 layout 或者 server component...

    所以你在 server component 把值读出来,直接传 React props 就可以了呀....

    header 如何读取,这个容易的
    hui9000
        84
    hui9000  
       261 天前
    nestjs ,nextjs ,nustjs 他们对比传统 Springboot 这种有啥优势啊?
    forvvvv123
        85
    forvvvv123  
       261 天前
    koa
    streamrx
        86
    streamrx  
       261 天前 via iPhone
    都用 nextjs 了为什么不用 springboot , 写东西的速度没啥区别
    chenxiansheng
        87
    chenxiansheng  
       261 天前
    Avalonia ,我肯定是唯一一个。。。。
    yichengxian
        88
    yichengxian  
       261 天前
    @mightybruce 就你不适合,你得业务到底多复杂,写的多恶心
    libook
        89
    libook  
       261 天前
    主要是 koa ,部分 egg ,后来都换 go 了
    libook
        90
    libook  
       261 天前
    其实最一开始是 express ,用的 mean 架构。后来发现业务逐渐复杂之后,对中间件的功能有更多定制性需求,于是就换了 koa ,自己搭配符合业务需求的中间件,没有合适的中间件就自己写。

    微服务架构下每个服务可以尽可能简单,专门做一件事,所以不需要复杂的框架提供复杂的特性。服务治理部分可以交给 k8s 。

    JS 是个灵活性非常高的语言,对开发者要求挺高的,因为开发者需要在众多可行的实现方案中选择最适合当前需求的。

    TS 我本人不感冒,JS+JSDoc/ESDoc+Linter+IDE 其实也能实现差不多的效果。
    nickfox5880
        91
    nickfox5880  
       261 天前
    @Seria 你好歹先问问使用场景再输出吧。格杀勿论?
    nexo
        92
    nexo  
       261 天前
    flask ..............
    tangqiu0205
        93
    tangqiu0205  
       261 天前
    语言是 go 框架是 kratos
    jesse10
        94
    jesse10  
       261 天前
    koa
    ragnaroks
        95
    ragnaroks  
       261 天前
    疫情前我会说 aspnet core 或者 springboot ,现在(即使考虑到性能)我只会说 nextjs 或 fastify 或 fiber
    morebuff
        96
    morebuff  
       261 天前
    gin
    seu
        97
    seu  
       261 天前
    用 fastify 和 nestjs + prisma 编写过基于 chrome 的 CDP 协议的爬虫
    blur1119
        98
    blur1119  
       261 天前
    @lstz 请教一下 去外企需要英文和技术并重吗
    encro
        99
    encro  
       261 天前
    觉得这个怎么样?

    https://elysiajs.com/
    fenglirookie
        100
    fenglirookie  
       261 天前
    @lstz 我去试试
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3360 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 11:31 · PVG 19:31 · LAX 03:31 · JFK 06:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.