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

关于 Node.js 框架进阶选型的问题。

  •  1
     
  •   JayLin1011 · 2020-04-17 21:41:25 +08:00 · 10403 次点击
    这是一个创建于 1686 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Node.js 基础的框架 Express 和 Koa 之后,NestJS 和 egg.js 选哪个作为进阶学习框架比较好?
    因为两者是基于不同的底层框架再封装。
    NestJS 又对 TS 支持更加直接,Express 生态也相对丰富,同时内置了 Swagger 方便生成接口测试文档。
    egg.js 则对开发者更友好,同时基于 Koa 实现。
    大佬们有没有好的建议,或者有其他更好的框架推荐一波。
    46 条回复    2020-04-26 13:14:12 +08:00
    zhuangzhuang1988
        1
    zhuangzhuang1988  
       2020-04-17 21:49:55 +08:00
    不要用 node
    hooopo
        2
    hooopo  
       2020-04-17 21:52:04 +08:00 via Android
    swg 还不如直接 gql 全套了
    ZehaiZhang
        3
    ZehaiZhang  
       2020-04-17 21:58:29 +08:00
    @zhuangzhuang1988 可以说说理由嘛?
    xcstream
        4
    xcstream  
       2020-04-17 22:00:52 +08:00
    express 基本不用看文档就可以直接写
    markmx
        5
    markmx  
       2020-04-17 22:05:02 +08:00
    @zhuangzhuang1988 同问! 为什么 ,你建议其他选项是什么?
    zhuangzhuang1988
        6
    zhuangzhuang1988  
       2020-04-17 22:33:02 +08:00
    java, go.
    markmx
        7
    markmx  
       2020-04-17 22:59:35 +08:00
    @zhuangzhuang1988 java 感觉有点重了.
    go 的选择还不错了.不知道入门成本高不高
    jingcoco
        8
    jingcoco  
       2020-04-17 23:00:06 +08:00 via Android
    个人不是太熟,不过感觉用 express 的比例大很多,而且虽然据说都是一个团队做的,而且 express 还早,但是好多人不买账对 koa
    lovedebug
        9
    lovedebug  
       2020-04-17 23:03:08 +08:00
    我建议 nest.js 相比 egg, 框架设计更灵活以及更标准, 基本是在复制 spring.
    Express 现在的 commit 和维护情况未来还是比较担心的.
    theohateonion
        10
    theohateonion  
       2020-04-17 23:07:34 +08:00
    nest.js 生态成熟,typescript first,选他选他选他
    version
        11
    version  
       2020-04-17 23:15:07 +08:00 via iPhone
    就 koa,就可以了,然后练习下并发压测接口,做些扛压力的研究就好
    进阶就学其它语言吧,本来不适合做底层的东西,没企业拿来做服务端,最多是中间间,
    EPr2hh6LADQWqRVH
        12
    EPr2hh6LADQWqRVH  
       2020-04-17 23:19:08 +08:00
    egg 问题在于它依然是 js,nest 问题和 angular 一样,用力过猛。

    直接 Koa 简单解决就行了,缺啥自己写啥
    wangyzj
        13
    wangyzj  
       2020-04-17 23:22:01 +08:00
    koa 足够了
    Lxxyx
        14
    Lxxyx  
       2020-04-17 23:32:20 +08:00
    希望复用 Egg.js 生态,又想用 TypeScript 的话,可以试试看 Midway ( https://github.com/midwayjs/midway)
    JayLin1011
        15
    JayLin1011  
    OP
       2020-04-17 23:51:04 +08:00
    @zhuangzhuang1988 前端的生态绕不开 node 吧,除非 deno 能正式崛起,不是单纯为了后端服务,而是为了包括但不限于中间层服务,打包工具等才学习的。
    JayLin1011
        16
    JayLin1011  
    OP
       2020-04-17 23:52:12 +08:00
    @hooopo 我忏悔,我还停留在传统的 restful 接口阶段,以后会试试这个。
    JayLin1011
        17
    JayLin1011  
    OP
       2020-04-17 23:52:44 +08:00
    @xcstream 你说得对。
    JayLin1011
        18
    JayLin1011  
    OP
       2020-04-17 23:55:18 +08:00
    @theohateonion 好的呢,我了解下。主要是我没接触过 Java Spring,NestJS 一些借鉴的概念十分生涩。
    JayLin1011
        19
    JayLin1011  
    OP
       2020-04-17 23:56:20 +08:00
    @lovedebug express 相对比较轻量,不用担心,稳得很。Spring 因为我没学过,所以比较吃力。
    JayLin1011
        20
    JayLin1011  
    OP
       2020-04-17 23:58:11 +08:00
    @jingcoco 技术不站队,是不可能的,没办法,在竞争中进步吧,时间是检验技术的唯一标准,然后你会发现,TMD 学不完,学不动了。
    JayLin1011
        21
    JayLin1011  
    OP
       2020-04-17 23:59:15 +08:00
    @Lxxyx 爱了爱了,我了解下这个。
    airyland
        22
    airyland  
       2020-04-18 00:05:19 +08:00 via iPhone
    只有一句说不要用什么的,直接忽略就行了。偏题又没任何参考作用。
    wunonglin
        23
    wunonglin  
       2020-04-18 00:26:37 +08:00
    nestjs
    hyyou2010
        24
    hyyou2010  
       2020-04-18 00:44:22 +08:00
    稍稍用过 koa2 及 egg,感觉做产品是不够方便的。可能 nestjs 较好,以后兼学 spring 。
    eggjs 的定位似乎是框架的基础,大概是这种说法吧。
    JayLin1011
        25
    JayLin1011  
    OP
       2020-04-18 02:37:58 +08:00
    @airyland 没事,集思广益,最终我总要选一个深入了解,先大致了解下可能的技术选型的前景和优缺点。
    JayLin1011
        26
    JayLin1011  
    OP
       2020-04-18 02:38:22 +08:00
    @wunonglin 好的,收到=。=
    JayLin1011
        27
    JayLin1011  
    OP
       2020-04-18 02:41:19 +08:00
    @hyyou2010 NestJS 确实足够出色,虽然很多来自 Spring 的概念我还不够深入,总觉得有点懵哈哈,当然它对 TS 的支持让我更有学习动力。egg 的话楼上有大佬建议更近一步的还有 midway,刚找了一下对 TS 也是很友好,有待研究。
    puncsky
        28
    puncsky  
       2020-04-18 06:08:24 +08:00
    自己造一个自己用 https://onefx.js.org/
    lihongming
        29
    lihongming  
       2020-04-18 06:19:48 +08:00 via iPhone
    既然 restful,何不学学 serverless ?
    wukongkong
        30
    wukongkong  
       2020-04-18 06:29:31 +08:00
    推荐 nestjs,写了几个程序,熟练之后还是非常方便的
    xymn
        31
    xymn  
       2020-04-18 06:29:50 +08:00 via Android
    es4x
    yangxin0
        32
    yangxin0  
       2020-04-18 06:53:51 +08:00 via iPhone
    我选择用 spring 。
    JayLin1011
        33
    JayLin1011  
    OP
       2020-04-18 09:39:18 +08:00
    @lihongming 只在微信小程序用过。
    JayLin1011
        34
    JayLin1011  
    OP
       2020-04-18 09:40:24 +08:00
    @puncsky 个人能力有限,暂时还造不动=。=
    JayLin1011
        35
    JayLin1011  
    OP
       2020-04-18 09:40:41 +08:00
    JayLin1011
        36
    JayLin1011  
    OP
       2020-04-18 09:41:25 +08:00
    onfuns
        37
    onfuns  
       2020-04-18 10:19:03 +08:00
    学习成本上 eggjs 用一天,nestjs 就得用一个星期。如果你想快速上手开发那就 eggjs,nestjs 太偏后端思维了。
    JayLin1011
        38
    JayLin1011  
    OP
       2020-04-18 11:09:08 +08:00
    @onfuns 好的,谢谢你的建议。
    jhs1873
        39
    jhs1873  
       2020-04-18 13:57:41 +08:00
    strapi 基于 koa 快速开发 api 用的 。可以玩一玩。
    g00001
        40
    g00001  
       2020-04-18 14:12:13 +08:00
    国内肯定很多人给你安利 egg,但是新项目最好选 nest.js + typescript ,最重要的其实是 typescript,至于 nest.js 一些花式炫技的用法别太当真就行了,java 那一套不是总是好的。
    hantsy
        41
    hantsy  
       2020-04-18 14:32:35 +08:00
    想自由一点直接基于 Express 就好了,现在 Node 也支持直接写 TS (安装 TS NOde )。
    Nestjs 真的是非常不错,后台开发,微服务 全部考虑到了,如果有 ANgular 经验几乎不需要入门,拿来即用。
    apeople
        42
    apeople  
       2020-04-18 14:48:24 +08:00
    nestjs, 写起来很舒服
    JayLin1011
        43
    JayLin1011  
    OP
       2020-04-18 14:56:54 +08:00
    @g00001 感谢你的建议。基于 egg 的 TS 有小伙伴分享了 midway,目前开始在熟悉和尝试 nestjs ,主要是部分概念和功能不太能对号入座,后续有余力我会再看看其他的。只能说趁着 TS 的浪潮滚滚而来赶紧乘风破浪。
    JayLin1011
        44
    JayLin1011  
    OP
       2020-04-18 14:57:38 +08:00
    @hantsy +1,感谢建议。
    whynimal
        45
    whynimal  
       2020-04-20 18:00:32 +08:00
    @JayLin1011 所以你选了 nestjs 吗? 可以说说你最终选这个的理由吗? 我也想了解.
    JayLin1011
        46
    JayLin1011  
    OP
       2020-04-26 13:14:12 +08:00
    @whynima 首先,你会 PHP 可以选 AdonisJs,会 Express / Java Spring / Angular 选 NestJS, 会 koa 或 egg 选 midwayjs 。其次,我是根据 star,生态,学习资料和小伙伴建议选的。其他的如 hapi 的没接触过所以放弃。你可以具體根據自己的學習路線合理規劃。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1776 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:36 · PVG 00:36 · LAX 08:36 · JFK 11:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.