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

发布于 1周前 作者 songsunli 来自 nodejs/Nestjs

Nest.js 这么好的框架火不起来 Nodejs 社区也感觉可惜啊
前段时间试玩了一下 Nest.js ,感觉非常爽啊。 而且文档和生态都很全,Nest.js 把 Typescript 完美发挥到极致,写起来正的非常有感觉。

这么好的框架火不起来 好可惜

80 回复

其实已经挺火了 不少人在用


感觉现在到处都是 express、egg、koa。nest 很少听到有人用,而且 fastify 也很不错

Ok,一次试试

一次 -> 下次

最近正在学。

下次一定下次一定

学不动学不动(喘~)

nest 本质还是 express,但提供的语法糖目前看来足够多解决的问题也到位……现在比较坑的反倒是 TypeORM (手动狗头

nest 现在真的初步具备了叫板 spring 的能力,可以抓前端业务不饱和的去写 CRUD 了;但不管用不用 nest,工程问题还是工程问题……

看了下文档,一股春天的味道。

瞄了眼文档,控制器还是用 class 的,一股陈年腐败的味道,不是我喜欢的 js 风格

在用着,感觉人生到达了高潮

class 咋就陈年腐败了呢?🤨

如果你是 java/angular 粉,那当然见着这风格很亲切

你不喜欢 class 可以理解,但 “陈年腐败” 这个形容令人费解。

真巧,正好刚才吃完饭搜了下 “2019 nodejs backend” 随便点的文章里看到了 Nest.js
现在更有兴趣了

一直迷惑:何不直接 spring ?

没有一个功能完备的 orm 是硬伤

用了一年多了 感觉文档不够详细 很多功能都是一点点试出来的

next.js 、nuxt.js 、nest.js 。。。。还有啥?

什么? nodejs 在服务端火了吗!

感觉各位还停留在工具这个层面。

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

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

个人玩玩的话,随便玩,没问题。

和其他事情类似,能不能火能不能成功要天时地利人和。

写 nest.js 每次写一半都会让我有一种感觉,我为什么不直接用 spring 呢。

spring 能在 node 用吗?

同类还有 TS.ED ,一开始就是个服务容器,现在功能全了后两者就开始类似了

别问,问就是 Spring

为用 node 而 node ?

都到了这个需求了还部拥抱 spring

小项目用 node 爽翻天,大项目基本上天天调试就行了,脚本语言硬伤

之前自己写过小项目,感觉写起来很有感觉,但是官方文档是真的不怎么样

nestjs 已经很火了, 作为新兴框架上升很快。

不过像 Express 这些添加了 Typescript 官方支持,完全可以用 Typescript 写了。

fastify 应该是从头重写的,以性能著称。API 写法与 Express 有相似之处。
NestJS 不一样,包装了 Express,Koa。对于 OOP 熟悉,很容易入手,加上 Typescript 和 Rxjs,写起来感觉比较现代吧。

用 ng,然后无门槛过渡

只会 js、ts,不会 java、c++,难道 node 有了类似 spring 的框架不好?而且 nest.js 是 node 所有框架里面对 ts 支持最好的,没有之一

做过项目,Nest.js 、TypeORM 还是有太多坑,特别是 TypeORM。

nest + graphql 做 bff 真香

nest.js 有个非常尴尬的地方,它的思路完全是后端的思路,静态的,强类型约束,依赖注入。你想想 node 面对的绝大部分用户,都是不喜被约束的脚本小子,ts 这东西算是广受好评并被广为宣传的,但是大量搞前端的就死活接受不了,尤其是类型系统。让他们接受被约束的更厉害的 nest.js…呵呵呵我不看好。

为什么不用 spring 呢

能说一下 TypeOrm 的坑在哪里吗,目前 node 领域比较好的 ORM 有哪些?

express 一把梭,为啥要学新的



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



#37 虽然现在周边还是不够完善,但是至少走对路了不是么

我现在用框架 /库,巴不得它就是用 TS 写的,至少有完善的 .d.ts 文件。为啥有人会因为 TS 而拒绝某个框架?
用 TS 写的项目,代码可读性和可维护性都会有明显的提升。个人项目可能不在意这个,但是对企业项目而言是很重要的。

主要是,前端上 node,主要就做个中间层,直接拿来写业务的很少很少,不需要太复杂的框架。

nest 其实更像 angular,对后端来说注入的方式有点不喜。

在用着,感觉人生到达了高潮

我不喜欢 ORM,更喜欢直接用 mysql 包直接上。ORM 有很多潜在问题

哈哈 羡慕

我一直都有兴趣,奈何只能自己玩,推不动。现在基本都是 Egg

是的 ,文档对入门来说很友好,对老手来说细节很模糊

文档不行,很多细节都没提,需要去翻源码,其他都挺好。整个热度上升还是很快的,对于需要长期维护多人协作的项目来说确实是神器。

typeORM。。。不提也罢,还不如直接用 mysql 包撸

问下,工程问题,必须是软件工程专业的人去解决吗,该怎么学习?

我就是前端,纯的。 我喜欢 typescript,也喜欢 nest.js😄

之前简单看过文档,中间件的使用方式不太友好,既然路由都用装饰器分散定义到每个 function 上了,那为什么中间件要统一定义。
像 midway 定义路由中间件的方式就挺不错的( https://midwayjs.org/midway/guide.html#路由中间件 ),但是 midway 之前用起来也是很多问题,官方介绍说在阿里集团内部跑了很久了,有点怀疑

跑得久不管用。用得广,框架才会越来越完善。可以对比一下 midway 和 egg 这两个框架在 github 页面上的 “Used by” 数量。



#59 nest.js Used by 12,054 哈哈哈哈哈

js 用 orm 就像自缚手脚,postgres json_agg 一下,直接把 sql 当成 nosql 用。java 用 orm 是没办法,总不可能 map 撸一切吧,那和 js 有什么区别

我看那个男人写的就是 Java 用 Map 一把梭撸一切,之前还在 V 站到处打广告 /偷笑

TypeORM 这么不堪的?试试 Prisma

我选择了 tsed

我选择 meteor 框架

现在一直是用 nest+typeorm,快乐的不行

这玩意搭配 angular 应该挺好玩的,之前有想过用,但是没想到足够说服自己的理由,其他同事似乎也对 nest.js 不太感冒,只能放弃

希望同事愿意换

nder the hood, Nest makes use of Express,

看到这句就不想用

under the hood, Nest makes use of Express,

看到这句就不想用

也可以改成使用 fastify

typeORM 是个大坑,别的还好,说多都是泪啊。好些地方虽然知道 rawQuery 不可取,但没有办法。

这个我赞成,所以我直接是 nestjs + mysq,不用 typeORM

感觉,历史遗留问题的都去坚守 php 了.
追求性能的上 Golang.
追求工程化的上了 java.
我目前是 egg+typeorm,
之前是 Express+sequelize,
再之前是写 php+小程序的.

egg 也不错,我喜欢 nestjs 是因为它把 typescript 玩到了极致,而且用 nestjs 更像 spring,我虽然是前端 但以前学过 java,所以写起来很爽。 至于数据库,我没用 typeorm,也没用其他 ORM,直接上的 mysql 驱动包写 sql

用 angular 比较多,nest 用 ts 写,很喜欢啊

nestjs+prisma,别用 typeORM

确实,Nest.js作为一个用于构建高效、可靠和可扩展的服务器端应用程序的框架,集成了许多现代JavaScript(包括TypeScript)开发的最佳实践和工具,但在Node.js社区中的普及度似乎与其优秀特性不成正比,这确实有些可惜。不过,其独特的设计理念和强大的功能集正在逐渐被更多开发者认识和接受。

Nest.js的核心优势之一是它提供了类似于Angular的结构和依赖注入机制,使得开发者能够快速上手并构建出结构清晰、易于维护的应用程序。以下是一个简单的Nest.js控制器示例,展示了其基本的路由处理功能:

import { Controller, Get } from '@nestjs/common';

@Controller('hello')
export class HelloController {
  @Get()
  findAll(): string {
    return 'Hello World!';
  }
}

在这个例子中,@Controller('hello')装饰器定义了一个名为hello的控制器,而@Get()装饰器则指定了一个GET请求的处理器,当访问/hello路径时,会返回"Hello World!"字符串。

Nest.js还提供了强大的模块系统、中间件支持、异常处理机制以及丰富的第三方集成,使得开发者能够轻松构建复杂的应用程序。此外,其良好的TypeScript支持也极大地提高了代码的可读性和可维护性。

相信随着更多开发者对Nest.js的深入了解和实践,这个优秀的框架一定会逐渐在Node.js社区中崭露头角。

回到顶部