安装 NestJS 的先决条件和安装 NestJS
NodeJS 的版本需要大于等于 16。
安装 NestJS 的命令是:npm i -g @nestjs/cli
。
使用命令创建项目
使用 nest new <项目名称>
来创建项目,假如要开启 TS 的严格语法功能的话,可以把--strict
标志传递给 nest new <项目名称>
,即最终生成的命令是 nest new <项目名称> --strict
。
使用--strict
标志创建的项目会在 TS 的配置文件把 TS 的强校验验证的参数设置都开启。具体比较如下:
目录结构说明
使用命令创建好项目以后,我们可以在项目的 src 目录下看如下几个文件:
- app.controller.spec.ts (控制器的单元测试)
- app.controller.ts (基本控制器,这个文件在后期自己做项目的时候删除)
- app.module.ts (应用程序的根模块,即日志配置、业务 module、定时任务等都可以在这里设置,是最为重要的一个文件)
- app.service.ts (基本服务,这个文件在后期自己做项目的时候删除)
- main.ts (Nest 应用程序实例的应用程序的入口文件,这个是核心,不能删除,项目启动时会用到)
main.ts 文件解析
import { NestFactory } from "@nestjs/core";
import { AppModule } from "./app.module";
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
在上述的代码中我们可以看到我们是使用NestFactory
来创建服务的,所以在 NestJS 中最为核心的类就是NestFactory
类。
create()
方法返回一个实现该 INestApplication 接口的应用程序对象。在后续的笔记中会慢慢阐述这个应用程序的对象。
create
方法创建的应用在默认情况下遇到异常情况是直接关闭应用并且把错误信息打印出来,而当我们想让应用抛出异常的时候,我们可以这样来创建应用。具体代码如下:
const app = await NestFactory.create(AppModule, { abortOnError: false });
NestJS 的平台使用说明
NestJS 是一个与平台无关的框架,而 NestJS 为了能够很好的插件可重用的逻辑和简化开发,所以它现在支持两个平台,一个是 Express(NestExpressApplication),另外一个是 fastify(NestFastifyApplication)。而我们一般创建的时候都是默认使用 Express 平台。
当我们需要使用某个指定平台的时候,我们可以这样创建服务。
const app = await NestFactory.create<NestExpressApplication>(AppModule);
项目启动
启动项目的命令如下:
$ npm run start
假如要开发模式的情况下,我们可以开启如下的命令来时刻监听文件的改变,从而让程序热重启。
$ npm run start:dev