node.js - NestJs 是 node.js 初学者的正确选择,还是我应该先用 Express 做点什么?
问题描述
我知道Nest.js
在 Express JS 之上并且可以在 fastify 上,我已经在 Mozilla (MDN) 培训站点上完成了 express JS 库项目,但是出于许多原因,例如应用程序的架构以及我在网上看到的关于问题情况的讨论使用 express 和现代 JS,如 async-await 等……</p>
我搜索了一个更可靠的选择:sails-js,nest 和 feathers 出现了,feathers 很棒,但Nest.js
有很好的文档,我有一段时间避免使用 typescript,但现在它似乎无处不在,我希望用 nest 我可以更好地了解它和它的实际用途,在前端我真的找不到使用它的充分理由,除了它是一种趋势,除了 angular 2 plus。不要误会我的意思,角度是我希望绕过 TS 的原因之一。
精简版
因此,这是我作为前端开发人员(主要是 vue 和苗条)在 NodeJS 氛围(express 和 hapi)中几个月的当前情况,我的问题是:我应该坚持 hapi 和 express 还是使用 NestJs 和羽毛和风帆等替代品?
请原谅我缺乏英文写作经验。
解决方案
Nest.js 和 Typescript 是一个企业级应用程序框架,它提供了清晰的结构和指导方针。
所以对于初学者来说,优点是:
- TS/JS 中的 OOP (SOLID)
- 介绍 TS 最新的 LTS 特性,如装饰器、依赖注入等。
- 在构建 ESLint、prettier 和 monorepo 模块中,可以通过 Nest CLI 激活。
- 通过 docker-compose 轻松部署微服务架构。
您无法通过 Express +(其他)这样的旧框架实现这些目标
至于缺点:
很难理解为什么会有一个
contoller
文件,一个文件service
,以及为什么有多个module
文件与forRoot
DB的forRootAsync
连接等等。随着时间的推移,不使用 Nestjs 编写/构建项目会很困难,因为它非常好,但编程模式略有不同。
@Afaq 提到 TS 是未来(以及 Nestjs),但这有点错误。JS 作为一种原生语言总是从 TS 继承最好的可用选项,就像它对 CoffeeScript 等所做的那样。因此,在未来的某一天,您可能会醒来并将您的 TS 代码库视为没有适当支持的遗产,而原生技术正在向前发展。
推荐阅读
- laravel - 为什么我想过滤项目时会出现这个问题
- php - 在浏览器上单击退格导航时如何防止访问管理端口
- android - 为什么 Android Studio 不能识别函数?
- javascript - 如何从我的网站自动登录到不同的网站,然后从他们的 HTML 中获取 href 链接?
- javascript - 在javascript中从数组中查找并删除嵌套元素?
- r - R:read_csv 将数字条目读取为逻辑 - 解析 col_logical 而不是 col_double
- php - Lumen 使用 Graph API 和社交名流
- c++ - 从主函数调用变量到其他类&无法使用它?
- php - 使用 WP 查询循环遍历 WooCommerce 产品的元值
- python - Discord Python bot 删除某个频道中不是命令的消息