NestJS学习笔记-01-nestcli

nestjs 简介

Nest 是一个用于构建高效,可扩展的 Node.js 服务器端应用程序的框架。它使用渐进式 JavaScript,内置并完全支持 TypeScript(但仍然允许开发人员使用纯 JavaScript 编写代码)并结合了 OOP(面向对象编程),FP(函数式编程)和 FRP(函数式响应编程)的元素。在底层,Nest使用强大的 HTTP Server 框架,如 Express(默认)和 Fastify。Nest 在这些框架之上提供了一定程度的抽象,同时也将其 API 直接暴露给开发人员。这样可以轻松使用每个平台的无数第三方模块。

以上是官网的原话,个人认为最重要的是nestjs提供了IOC、AOP、微服务的架构特性,这与后端的spring框架极其相似,作为一个前端程序员很难接触到这些结构思想,因此想成为一个全栈程序员,学习nestjs无疑是最好的选择。

这里附上nestjs的中文文档地址。

nestjs中文文档

安装

构建nest项目有两种方式,一种是全局安装nestjs/cli,使用cli来构建项目,具体命令如下:

cmd 复制代码
npm i -g @nestjs/cli
nest new project-name

也可以通过git来安装:

cmd 复制代码
git clone https://github.com/nestjs/typescript-starter.git project
cd project
npm i

这里比较推荐第一种方式,但这种方式要时不时升级下版本,具体命令如下:

cmd 复制代码
npm update -g @nest/cli

nest指令

nest为我们提供了很多指令,大大提高了我们开发时的效率,具体的, 我们可以通过 nest -h 查看具体有哪些指令:

nest new|n [options] [name] 命令用来创建一个新的应用,同样可以通过 nest new -h 来查看具体的选项:

  • --skip-git:跳过git初始化
  • --skip-install:跳过npm install
  • --package-manager:指定包管理器
  • --language:指定语言 javascript | typescript, 默认为typescript
  • --strict:开启ts的严格模式

至于 --collect的解释,就要先看一下nest generate命令了。

nest命令除了可以生成整个项目外,也可以生成一些特定的代码,例如controller、service、module等。这就要用到nest generate命令了。

具体的可以通过 nest generate -h查看具体的命令和配置项:

例如,生成module文件:

cmd 复制代码
nest generate module xxx

生成controller文件:

cmd 复制代码
nest generate controller xxx

等等...

同时也可以生成一个完整的代码。不用一个一个生成:

cmd 复制代码
nest generate resource xxx

这些代码模版的集合是在 @nestjs/schematics 这个包里定义的。

还记得 nest new 命令有个 --collection 选项么,就是配置这个的。一般不需要配置。

其中还有一个 aplication 的类型, 它用来生成整个项目的结构,除了核心代码,还包括了一些配置项文件:

其实 nest new 的底层就是 nest generate application,只不过 nest new 额外做了 git init 和 npm install 等处理。

此外,它也有很多配置项:

  • --flat--no-flat:指定是否生成对应目录文件夹
  • --spec--no-spec:指定是否生成测试文件
  • --skip-import:指定不在 AppModule 里引入, 这个以后再说

  • --project:指定生成代码在哪个子项目

nest build 是用来打包项目的,执行该命令可以生成一个dist目录,并在此目录下生成编译后的代码。同样可以查看一下它的配置项:

  • --wepback--tsc:指定用什么编译,tsc不会打包,webpack会打包为一个js文件
  • --watch:监听文件变化,自动打包
  • --path:指定 tsc 配置文件的路径
  • --config:指定 nest cli 的配置文件,以上配置项也可以在这里配置

nest start命令用来启动项目,具体的配置项:

其中:

  • --watch:监听文件变化
  • --debug:启动调试的 websocket 服务,用来 debug
  • --exec:指定用什么来跑,默认是用 node 跑,你也可以切换别的 runtime

其他的和 build 一样,不再赘述。

最后,还有个nest info命令,是用来查看项目信息的

学好nest指令,是学好nestjs的第一步。

相关推荐
Victor3569 分钟前
MongoDB(72)如何创建用户和角色?
后端
Victor35611 分钟前
MongoDB(71)如何启用MongoDB身份验证?
后端
想打游戏的程序猿17 分钟前
工具与协议层——Agent 如何连接世界
后端·ai编程
希望永不加班32 分钟前
SpringBoot 过滤器(Filter)与请求链路梳理
java·spring boot·后端·spring
0xDevNull38 分钟前
Java实现Redis延迟队列:从原理到高可用架构
java·开发语言·后端
糖炒栗子032640 分钟前
Go 语言环境搭建与版本管理指南 (2026)
开发语言·后端·golang
yaaakaaang1 小时前
(八)前端,如此简单!---五组结构
前端·javascript
恼书:-(空寄1 小时前
Spring 事务失效的 8 大场景 + 原因 + 解决方案
java·后端·spring
我是若尘1 小时前
我的需求代码被主干 revert 了,接下来我该怎么操作?
前端·后端·代码规范
dweizhao1 小时前
这份AI报告,把美股干崩了
后端