【问题标题】:Is NestJs a right choice for a node.js beginner or should I do something with Express first?NestJs 是 node.js 初学者的正确选择,还是我应该先用 Express 做点什么?
【发布时间】:2021-12-07 17:02:19
【问题描述】:

我知道Nest.js 在 Express JS 之上并且可以在 fastify 上,我已经在 Mozilla (MDN) 培训网站上完成了 express JS 库项目,但出于许多原因,例如应用程序的架构和我的讨论在网上看到有关 express 和现代 JS(如 async-await 等)的问题情况......

我搜索了一个更可靠的选择:sails-js,nest 和 feathers 出现了,feathers 很棒但是 Nest.js 有很好的文档,我有一段时间避免使用 typescript,但就目前而言,它似乎无处不在,我希望通过nest我可以更好地了解它以及它的实际用途,在前端我真的找不到使用它的充分理由,除了它是一种趋势,除了angular 2 plus。不要误会我的意思,角度是我希望绕过 TS 的原因之一。

短版

所以这是我目前作为前端开发人员(主要是 vue 和苗条)在 NodeJS 氛围中(express 和 hapi)几个月的现状,我的问题是:我应该坚持 hapi 和 express 还是使用 NestJs 和替代品像羽毛和风帆?

请原谅我缺乏英文写作经验。

【问题讨论】:

  • 我会坚持使用 express/hapi。我每天在工作项目中都在 hapi 和 nestjs 中工作。我发现nestjs 比hapi 更抽象。目前,不知何故,我发现 hapi 在语法、简单性和理解方面更适合我。如果您只是为了练习而为自己做简单的项目,我会坚持简单的解决方案。为真正的应用程序这样做是另一回事。专家将对此做出决定。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。
  • 欢迎来到 StackOverflow 社区!看看How to ask a good question,请不要忘记将答案标记为已接受并为有用的 cmets 或帖子点赞。
  • @StefanZivkovic 在我作为前端开发人员的最后一份工作中,我与在 Java 方面有丰富经验的人一起工作,然后我看到他们真正是一个程序员,而不是我是一个程序员,我不能从 java 之类的东西开始,所以我坚持 js 的 OO 框架可以帮助我变得更好,很快 TS 就在路上了

标签: node.js typescript express sails.js nestjs


【解决方案1】:

在我看来,你应该选择nestjs。打字稿是未来。一旦你进入打字稿,你会喜欢使用它。 Nestjs 为构建 Web 应用程序提供了一个非常干净的结构。在功能方面,它可以与成熟的框架(如 LARAVEL、DJANGO)进行比较。是的,它可能不那么受欢迎,但它正在增长。我真的推荐使用nestjs。好处是,你并不总是需要 Typescript。 Nest 也可以使用普通的 javascript 正常工作。

【讨论】:

  • 是的,nestjs 确实可以在没有 TS 的情况下使用,而且它的实用性不仅仅是广告宣传,感谢您抽出宝贵时间回答我的问题
【解决方案2】:

Nest.js 和 Typescript 是一个企业级应用程序框架,它提供了清晰的结构和指导方针。

所以对于初学者来说是:

  • TS/JS 中的 OOP (SOLID)
  • 介绍 TS 的最新 LTS 功能,如装饰器、依赖注入等。
  • 在构建 ESLint、prettier 和 monorepo 模块中,可以通过 Nest CLI 激活。
  • 通过 docker-compose 轻松部署微服务架构。

您无法通过 Express +(其他)这样的旧框架实现这些目标

至于缺点:

  • 很难理解为什么会有contoller 文件、service 文件,以及为什么有多个module 文件与forRoot 和forRootAsync 连接到DB 等等。

  • 随着时间的推移,不使用 Nestjs 编写/构建项目会很困难,因为它非常好,但编程模式有点不同。

  • @Afaq 提到 TS 是未来(Nestjs 也是如此),但这有点错误。 JS 作为一种原生语言总是从 TS 继承最好的可用选项,就像它对 CoffeeScript 等所做的那样。因此,在未来的某一天,您可能会醒来,将您的 TS 代码库视为没有适当支持的遗产,而原生技术正在向前发展。

【讨论】:

  • 关于TS和未来我听其他资深程序员也这么说,谢谢解答
【解决方案3】:

与流行的观点相反,我建议了解一下express,用JS和express(没有花哨的framweorks)做一个简单的服务器,将其转换为TS。了解 express 库及其工作原理。 NestJS 抽象了很多 express'y' 的东西。知道它是如何工作的总是好的。

我是从普通的旧 JS + express 到 NestJS,知道它是如何工作的感觉很好。

它不需要是一个大的应用程序,只需创建一个带有 Auth、Validation 和 DB 的 TODO。

不过从 NestJS 开始并没有什么问题。

【讨论】:

    猜你喜欢
    • 2011-08-27
    • 2011-02-13
    • 2010-10-17
    • 1970-01-01
    • 2019-10-22
    • 2015-09-15
    • 2010-12-25
    相关资源
    最近更新 更多