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

Nest.js 这么好的框架火不起来感觉好可惜啊

  •  
  •   cl903254852 · 2019-09-24 20:36:58 +08:00 · 25910 次点击
    这是一个创建于 1918 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前段时间试玩了一下 Nest.js ,感觉非常爽啊。 而且文档和生态都很全,Nest.js 把 Typescript 完美发挥到极致,写起来正的非常有感觉。

    这么好的框架火不起来 好可惜
    79 条回复    2022-07-08 02:27:18 +08:00
    leafdream
        1
    leafdream  
       2019-09-24 20:57:59 +08:00
    其实已经挺火了 不少人在用
    cl903254852
        2
    cl903254852  
    OP
       2019-09-24 21:01:48 +08:00
    @leafdream 感觉现在到处都是 express、egg、koa。nest 很少听到有人用,而且 fastify 也很不错
    xxx749
        3
    xxx749  
       2019-09-24 21:04:24 +08:00 via Android
    Ok,一次试试
    xxx749
        4
    xxx749  
       2019-09-24 21:04:50 +08:00 via Android
    @xxx749 一次 -> 下次
    muxw6
        5
    muxw6  
       2019-09-24 21:09:04 +08:00 via Android   ❤️ 1
    最近正在学。
    a4854857
        6
    a4854857  
       2019-09-24 21:10:01 +08:00   ❤️ 2
    下次一定下次一定
    berumotto
        7
    berumotto  
       2019-09-24 21:21:09 +08:00 via iPhone
    学不动学不动(喘~)
    yagokoro
        8
    yagokoro  
       2019-09-24 21:44:27 +08:00 via Android
    nest 本质还是 express,但提供的语法糖目前看来足够多解决的问题也到位……现在比较坑的反倒是 TypeORM (手动狗头

    nest 现在真的初步具备了叫板 spring 的能力,可以抓前端业务不饱和的去写 CRUD 了;但不管用不用 nest,工程问题还是工程问题……
    kyuuseiryuu
        9
    kyuuseiryuu  
       2019-09-24 21:49:30 +08:00 via iPhone   ❤️ 3
    看了下文档,一股春天的味道。
    love
        10
    love  
       2019-09-24 22:24:00 +08:00
    瞄了眼文档,控制器还是用 class 的,一股陈年腐败的味道,不是我喜欢的 js 风格
    wunonglin
        11
    wunonglin  
       2019-09-24 22:25:14 +08:00
    在用着,感觉人生到达了高潮
    3789
        12
    3789  
       2019-09-24 22:29:58 +08:00 via Android
    @love class 咋就陈年腐败了呢?🤨
    love
        13
    love  
       2019-09-24 22:35:13 +08:00
    @3789 如果你是 java/angular 粉,那当然见着这风格很亲切
    cmdOptionKana
        14
    cmdOptionKana  
       2019-09-24 23:15:10 +08:00
    @love 你不喜欢 class 可以理解,但 “陈年腐败” 这个形容令人费解。
    catinsides
        15
    catinsides  
       2019-09-24 23:25:55 +08:00
    真巧,正好刚才吃完饭搜了下 "2019 nodejs backend" 随便点的文章里看到了 Nest.js
    现在更有兴趣了
    hyyou2010
        16
    hyyou2010  
       2019-09-24 23:26:51 +08:00
    一直迷惑:何不直接 spring ?
    jrtzxh020
        17
    jrtzxh020  
       2019-09-24 23:40:02 +08:00 via iPhone
    没有一个功能完备的 orm 是硬伤
    Blacate
        18
    Blacate  
       2019-09-24 23:56:00 +08:00 via iPad
    用了一年多了 感觉文档不够详细 很多功能都是一点点试出来的
    mamahaha
        19
    mamahaha  
       2019-09-25 00:09:47 +08:00
    next.js 、nuxt.js 、nest.js 。。。。还有啥?
    blessyou
        20
    blessyou  
       2019-09-25 00:23:09 +08:00 via Android
    什么? nodejs 在服务端火了吗!
    ericgui
        21
    ericgui  
       2019-09-25 00:40:16 +08:00
    感觉各位还停留在工具这个层面。

    怎么说呢,个人以为,还是要以解决实际问题为出发点。

    我觉得 nextjs 挺好,但如果无脑尬吹,也不好,毕竟到底你用了 nextjs 是否解决了你的问题了吗?是否适合你们团队?是否适合你们的业务?等等吧,技术选型,考虑因素很多。

    个人玩玩的话,随便玩,没问题。
    echo314
        22
    echo314  
       2019-09-25 01:04:48 +08:00 via iPhone
    和其他事情类似,能不能火能不能成功要天时地利人和。
    lynskylate
        23
    lynskylate  
       2019-09-25 01:08:43 +08:00 via Android
    写 nest.js 每次写一半都会让我有一种感觉,我为什么不直接用 spring 呢。
    wunonglin
        24
    wunonglin  
       2019-09-25 02:02:04 +08:00 via Android
    @hyyou2010 spring 能在 node 用吗?
    LancerComet
        25
    LancerComet  
       2019-09-25 03:57:35 +08:00
    同类还有 TS.ED ,一开始就是个服务容器,现在功能全了后两者就开始类似了
    gowk
        26
    gowk  
       2019-09-25 06:54:50 +08:00 via Android
    别问,问就是 Spring
    flyxl
        27
    flyxl  
       2019-09-25 07:56:24 +08:00 via Android   ❤️ 1
    @wunonglin 为用 node 而 node ?
    murmur
        28
    murmur  
       2019-09-25 08:05:48 +08:00
    都到了这个需求了还部拥抱 spring
    jaskle
        29
    jaskle  
       2019-09-25 08:14:24 +08:00 via Android
    小项目用 node 爽翻天,大项目基本上天天调试就行了,脚本语言硬伤
    CocaColf
        30
    CocaColf  
       2019-09-25 08:52:07 +08:00
    之前自己写过小项目,感觉写起来很有感觉,但是官方文档是真的不怎么样
    hantsy
        31
    hantsy  
       2019-09-25 08:53:11 +08:00
    nestjs 已经很火了, 作为新兴框架上升很快。

    不过像 Express 这些添加了 Typescript 官方支持,完全可以用 Typescript 写了。
    hantsy
        32
    hantsy  
       2019-09-25 08:56:37 +08:00
    @cl903254852 fastify 应该是从头重写的,以性能著称。API 写法与 Express 有相似之处。
    NestJS 不一样,包装了 Express,Koa。对于 OOP 熟悉,很容易入手,加上 Typescript 和 Rxjs,写起来感觉比较现代吧。
    wszgrcy
        33
    wszgrcy  
       2019-09-25 08:59:01 +08:00 via Android
    用 ng,然后无门槛过渡
    wunonglin
        34
    wunonglin  
       2019-09-25 09:16:56 +08:00
    @flyxl 只会 js、ts,不会 java、c++,难道 node 有了类似 spring 的框架不好?而且 nest.js 是 node 所有框架里面对 ts 支持最好的,没有之一
    hapboy
        35
    hapboy  
       2019-09-25 09:17:08 +08:00 via iPhone   ❤️ 1
    做过项目,Nest.js 、TypeORM 还是有太多坑,特别是 TypeORM。
    fool079
        36
    fool079  
       2019-09-25 09:25:22 +08:00
    nest + graphql 做 bff 真香
    abcbuzhiming
        37
    abcbuzhiming  
       2019-09-25 10:00:59 +08:00
    @wunonglin nest.js 有个非常尴尬的地方,它的思路完全是后端的思路,静态的,强类型约束,依赖注入。你想想 node 面对的绝大部分用户,都是不喜被约束的脚本小子,ts 这东西算是广受好评并被广为宣传的,但是大量搞前端的就死活接受不了,尤其是类型系统。让他们接受被约束的更厉害的 nest.js...呵呵呵我不看好。
    cuzfinal
        38
    cuzfinal  
       2019-09-25 10:03:19 +08:00 via Android
    为什么不用 spring 呢
    abcbuzhiming
        39
    abcbuzhiming  
       2019-09-25 10:03:44 +08:00
    @hapboy 能说一下 TypeOrm 的坑在哪里吗,目前 node 领域比较好的 ORM 有哪些?
    whypool
        40
    whypool  
       2019-09-25 10:24:52 +08:00
    express 一把梭,为啥要学新的
    wunonglin
        41
    wunonglin  
       2019-09-25 10:24:53 +08:00
    @abcbuzhiming

    #37 express、egg、koa 这些传统的 js 框架太过于松散,思路还是 js 那套,反观 nest.js 拥有了静态强类型、依赖注入等理念在所以我才说 nest.js 才是真正作为后端的框架。与其说和 spring 像,倒不如说是走向了真正后端的路子
    wunonglin
        42
    wunonglin  
       2019-09-25 10:26:13 +08:00
    @abcbuzhiming

    #37 虽然现在周边还是不够完善,但是至少走对路了不是么
    miniwade514
        43
    miniwade514  
       2019-09-25 10:36:53 +08:00
    我现在用框架 /库,巴不得它就是用 TS 写的,至少有完善的 .d.ts 文件。为啥有人会因为 TS 而拒绝某个框架?
    用 TS 写的项目,代码可读性和可维护性都会有明显的提升。个人项目可能不在意这个,但是对企业项目而言是很重要的。
    cloudzqy
        44
    cloudzqy  
       2019-09-25 10:39:53 +08:00 via Android
    主要是,前端上 node,主要就做个中间层,直接拿来写业务的很少很少,不需要太复杂的框架。
    optional
        45
    optional  
       2019-09-25 10:40:46 +08:00
    nest 其实更像 angular,对后端来说注入的方式有点不喜。
    oneisall
        46
    oneisall  
       2019-09-25 10:41:47 +08:00
    在用着,感觉人生到达了高潮
    cl903254852
        47
    cl903254852  
    OP
       2019-09-25 10:43:22 +08:00
    @jrtzxh020 我不喜欢 ORM,更喜欢直接用 mysql 包直接上。ORM 有很多潜在问题
    cl903254852
        48
    cl903254852  
    OP
       2019-09-25 10:43:47 +08:00
    @kyuuseiryuu 老司机
    cl903254852
        49
    cl903254852  
    OP
       2019-09-25 10:44:20 +08:00
    @wunonglin 哈哈 羡慕
    cl903254852
        50
    cl903254852  
    OP
       2019-09-25 10:46:03 +08:00
    @catinsides 我一直都有兴趣,奈何只能自己玩,推不动。现在基本都是 Egg
    cl903254852
        51
    cl903254852  
    OP
       2019-09-25 10:47:36 +08:00
    @Blacate 是的 ,文档对入门来说很友好,对老手来说细节很模糊
    nigelvon
        52
    nigelvon  
       2019-09-25 10:50:07 +08:00
    文档不行,很多细节都没提,需要去翻源码,其他都挺好。整个热度上升还是很快的,对于需要长期维护多人协作的项目来说确实是神器。
    cl903254852
        53
    cl903254852  
    OP
       2019-09-25 10:50:59 +08:00
    @hapboy typeORM。。。不提也罢,还不如直接用 mysql 包撸
    userdhf
        54
    userdhf  
       2019-09-25 10:51:26 +08:00
    问下,工程问题,必须是软件工程专业的人去解决吗,该怎么学习?
    cl903254852
        55
    cl903254852  
    OP
       2019-09-25 10:53:07 +08:00
    @abcbuzhiming 我就是前端,纯的。 我喜欢 typescript,也喜欢 nest.js😄
    cl903254852
        56
    cl903254852  
    OP
       2019-09-25 10:54:13 +08:00
    cl903254852
        57
    cl903254852  
    OP
       2019-09-25 10:55:13 +08:00
    @cloudzqy BFF 可以的
    lblblong
        58
    lblblong  
       2019-09-25 10:57:16 +08:00
    之前简单看过文档,中间件的使用方式不太友好,既然路由都用装饰器分散定义到每个 function 上了,那为什么中间件要统一定义。
    像 midway 定义路由中间件的方式就挺不错的( https://midwayjs.org/midway/guide.html#路由中间件 ),但是 midway 之前用起来也是很多问题,官方介绍说在阿里集团内部跑了很久了,有点怀疑
    miniwade514
        59
    miniwade514  
       2019-09-25 11:08:40 +08:00
    @lblblong 跑得久不管用。用得广,框架才会越来越完善。可以对比一下 midway 和 egg 这两个框架在 github 页面上的 "Used by" 数量。
    wunonglin
        60
    wunonglin  
       2019-09-25 11:32:12 +08:00
    @miniwade514

    #59 nest.js Used by 12,054 哈哈哈哈哈
    YUyu101
        61
    YUyu101  
       2019-09-25 11:54:04 +08:00
    js 用 orm 就像自缚手脚,postgres json_agg 一下,直接把 sql 当成 nosql 用。java 用 orm 是没办法,总不可能 map 撸一切吧,那和 js 有什么区别
    StarkWhite
        62
    StarkWhite  
       2019-09-25 12:27:44 +08:00
    @YUyu101 我看那个男人写的就是 Java 用 Map 一把梭撸一切,之前还在 V 站到处打广告 /偷笑
    StarkWhite
        63
    StarkWhite  
       2019-09-25 12:28:13 +08:00
    @cl903254852 TypeORM 这么不堪的?试试 Prisma
    dany813
        64
    dany813  
       2019-09-25 13:00:14 +08:00
    nest 不错
    Biebe
        65
    Biebe  
       2019-09-25 13:10:21 +08:00 via iPhone
    我选择了 tsed
    niknik
        66
    niknik  
       2019-09-25 17:21:17 +08:00
    我选择 meteor 框架
    yu7er
        67
    yu7er  
       2019-09-25 17:46:39 +08:00
    现在一直是用 nest+typeorm,快乐的不行
    cl903254852
        68
    cl903254852  
    OP
       2019-09-25 20:09:08 +08:00
    @yu7er 羡慕
    Fortnight
        69
    Fortnight  
       2019-09-25 22:26:43 +08:00
    这玩意搭配 angular 应该挺好玩的,之前有想过用,但是没想到足够说服自己的理由,其他同事似乎也对 nest.js 不太感冒,只能放弃
    IvanLi127
        70
    IvanLi127  
       2019-09-25 22:29:18 +08:00 via Android
    希望同事愿意换
    tommyZZM
        71
    tommyZZM  
       2019-10-12 15:42:27 +08:00
    nder the hood, Nest makes use of Express,

    看到这句就不想用
    tommyZZM
        72
    tommyZZM  
       2019-10-12 15:42:34 +08:00
    under the hood, Nest makes use of Express,

    看到这句就不想用
    cl903254852
        73
    cl903254852  
    OP
       2019-10-15 13:56:25 +08:00
    @tommyZZM 也可以改成使用 fastify
    SolidZORO
        74
    SolidZORO  
       2019-10-19 19:17:20 +08:00
    typeORM 是个大坑,别的还好,说多都是泪啊。好些地方虽然知道 rawQuery 不可取,但没有办法。
    cl903254852
        75
    cl903254852  
    OP
       2019-10-20 22:32:58 +08:00
    @SolidZORO 这个我赞成,所以我直接是 nestjs + mysq,不用 typeORM
    hezhuowei
        76
    hezhuowei  
       2019-10-21 18:08:10 +08:00
    感觉,历史遗留问题的都去坚守 php 了.
    追求性能的上 Golang.
    追求工程化的上了 java.
    我目前是 egg+typeorm,
    之前是 Express+sequelize,
    再之前是写 php+小程序的.
    cl903254852
        77
    cl903254852  
    OP
       2019-10-22 14:46:11 +08:00
    @hezhuowei egg 也不错,我喜欢 nestjs 是因为它把 typescript 玩到了极致,而且用 nestjs 更像 spring,我虽然是前端 但以前学过 java,所以写起来很爽。 至于数据库,我没用 typeorm,也没用其他 ORM,直接上的 mysql 驱动包写 sql
    rf99wSiT6IxH1Z23
        78
    rf99wSiT6IxH1Z23  
       2019-10-25 21:49:09 +08:00
    用 angular 比较多,nest 用 ts 写,很喜欢啊
    frankies
        79
    frankies  
       2022-07-08 02:27:18 +08:00 via Android
    nestjs+prisma,别用 typeORM
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5379 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 01:27 · PVG 09:27 · LAX 17:27 · JFK 20:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.