快 2021 年, node.js 选用哪个 web 框架, 个人轻度使用, 写几个 api 什么的. - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jin7
V2EX    Node.js

快 2021 年, node.js 选用哪个 web 框架, 个人轻度使用, 写几个 api 什么的.

  •  
  •   jin7 2020-08-01 12:11:16 +08:00 10029 次点击
    这是一个创建于 1947 天前的主题,其中的信息可能已经有所发展或是发生改变。
    47 条回复    2022-06-23 14:55:14 +08:00
    lihongming
        1
    lihongming  
       2020-08-01 12:14:14 +08:00 via iPhone   1
    serverless
    haleyao
        2
    haleyao  
       2020-08-01 12:53:09 +08:00
    问就是 nestjs
    gimp
        3
    gimp  
       2020-08-01 12:53:39 +08:00
    Express, NestJS
    justin2018
        4
    justin2018  
       2020-08-01 12:53:53 +08:00   2
    justin2018
        5
    justin2018  
       2020-08-01 12:54:00 +08:00   1
    jslang
        6
    jslang  
       2020-08-01 13:47:45 +08:00
    koa 还行,fastify 应该比 express 好,极其不推荐 nestjs 这种仿 Java 的框架
    lizz666
        7
    lizz666  
       2020-08-01 13:59:18 +08:00
    nestjs,3 年前写过 springmvc,这次用 nestjs 感觉我日,好熟悉,如果你没相关经验的话就不知道了
    lemon6
        8
    lemon6  
       2020-08-01 14:02:48 +08:00 via Android
    Koa2
    zidian
        9
    zidian  
       2020-08-01 14:04:26 +08:00
    轻度使用首先不推荐 nestjs
    cmdOptionKana
        10
    cmdOptionKana  
       2020-08-01 14:07:16 +08:00
    轻度使用没必要上 nestjs
    shakaraka
        11
    shakaraka  
    PRO
       2020-08-01 14:18:44 +08:00
    nestjs
    watanuki
        12
    watanuki  
       2020-08-01 14:32:13 +08:00
    轻度使用首先排除 nestjs 和 egg,推荐 Express 或者 koa,npm 上有很多现成的中间件可以用。
    至于 Express 与 koa 选哪个,一般来说 Express 更容易上手,koa 则更加精简、灵活。
    love
        13
    love  
       2020-08-01 14:43:27 +08:00   1
    nest 这种就算了,一股 java 恶臭味

    express,如果喜欢 async 函数就 koa,二者都非常简单
    touno
        14
    touno  
       2020-08-01 14:47:40 +08:00
    自己写最轻
    HytonightYX
        15
    HytonightYX  
       2020-08-01 15:08:03 +08:00
    koa,装几个中间件,跨域的,连数据库的,静态文件的,解析 json 的,use 一下,就能用了,需求很简单的话你甚至只需要写一个 js 文件
    whypool
        16
    whypool  
       2020-08-01 15:08:16 +08:00
    express,教程多中间件多出了问题也好找
    async 这些 node 新版本都自带了,随便写
    markmx
        17
    markmx  
       2020-08-01 15:09:11 +08:00
    senecajs 感觉挺好
    zhengdai1990
        18
    zhengdai1990  
       2020-08-01 15:17:01 +08:00 via iPhone
    怎么没人说 egg
    Edwards
        19
    Edwards  
       2020-08-01 15:21:39 +08:00
    koa
    Administrat0r
        20
    Administrat0r  
       2020-08-01 15:35:48 +08:00
    koa 还有一个 micro 可以试试 更精致
    kenshinhu data-uid=
        21
    kenshinhu  
       2020-08-01 15:47:05 +08:00
    怎么没人说 egg +1
    blindie
        22
    blindie  
       2020-08-01 15:55:18 +08:00 via Android
    刚写 express 和 koa 。express 上手还是快一点,用 ts 写泛型也是 express 聪明一点。koa router controller 这些东西要学一下,学会了也蛮好用。非常简单的 api 我肯定直接 express 一把梭。
    SolidZORO
        23
    SolidZORO  
       2020-08-01 15:57:19 +08:00 via iPhone
    nest.js ,AOP 分层极度舒适。
    Austaras
        24
    Austaras  
       2020-08-01 16:42:12 +08:00
    xjb 写就用 koa
    awesomes
        25
    awesomes  
       2020-08-01 16:55:16 +08:00
    当然首选 egg 了
    fxjson
        26
    fxjson  
       2020-08-01 17:05:00 +08:00
    怎么没人说 egg+1
    YuTengjing
        27
    YuTengjing  
       2020-08-01 17:13:08 +08:00
    自己写框架
    gnosis23
        28
    gnosis23  
       2020-08-01 17:28:56 +08:00
    koa 太底层了吧,还得各种配置
    shynome
        29
    shynome  
       2020-08-01 17:29:12 +08:00 via Android
    不要选 express 不支持 async
    我推荐 hapi,简单好用
    XCFOX
        30
    XCFOX  
       2020-08-01 19:29:57 +08:00
    hhhhuang
        31
    hhhhuang  
       2020-08-01 20:06:52 +08:00
    没人推荐 egg.js 吗
    AmiKara
        32
    AmiKara  
       2020-08-01 23:24:31 +08:00
    想要直接上手的话建议 egg
    longjiahui
        33
    longjiahui  
       2020-08-01 23:34:05 +08:00
    我觉得 egg 整挺好
    longjiahui
        34
    longjiahui  
       2020-08-01 23:34:25 +08:00
    我觉得 egg 整挺好+++
    superllyykk
        35
    superllyykk  
       2020-08-02 10:10:44 +08:00
    egg 已经基本满足了
    ranjiayu
        36
    ranjiayu  
       2020-08-02 10:54:34 +08:00
    简单的几个 API 的话:express 或者 不用框架
    CharmanderS5
        37
    CharmanderS5  
       2020-08-02 12:02:24 +08:00
    egg nest 算了 fastify 就行了
    7anshuai
        38
    7anshuai  
       2020-08-03 00:00:57 +08:00
    试试 express + graphql ? 推下自用简易脚手架 https://github.com/7anshuai/node-starter-kit
    yoyooyooo
        39
    yoyooyooo  
       2020-08-04 13:40:09 +08:00
    为什么都说轻度使用不要 nestjs 呢? koa 、express 还得各种自己配,路由也得自己配,nestjs 都给你搞好了
    workerbee
        40
    workerbee  
       2020-08-04 23:40:49 +08:00
    koa2 想怎么就怎么写
    libook
        41
    libook  
       2020-08-05 11:42:46 +08:00
    说实话,用 Node.js 内置的 http module 手撸 API 也蛮快的,比如自己写一些 CI/CD 的 hook 。

    轻量的话主流就是 koa 了,只有一个 context 核心,router 、bodyparser 等额外 use 几个 middleware 就行了。

    当然,如果你懒得自己装 middleware 也可以用一些集成方案,比如 express 。

    其他的就是哪个顺手用哪个,最好是不用遵循什么严格的架构设计的。
    jin7
        42
    jin7  
    OP
       2020-08-06 15:44:37 +08:00
    感谢各位大佬的回复.
    xcstream
        43
    xcstream  
       2020-08-09 20:43:56 +08:00
    express 该有都有,插件最多
    flykye
        44
    flykye  
       2020-08-10 11:40:14 +08:00
    thinkjs 也不错。方便。
    Wolfe
        45
    Wolfe  
       2020-08-23 23:39:32 +08:00 via Android
    Express + forever
    CodeCodeStudy
        46
    CodeCodeStudy  
       2020-09-02 18:59:55 +08:00
    @flykye Thinkjs 好久没更新了
    yuxian
        47
    yuxian  
       2022-06-23 14:55:14 +08:00
    轻度使用,首推 Hapi ,对性能要求,可以考虑 fastify
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2774 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 14:03 PVG 22:03 LAX 06:03 JFK 09:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86