核心基础知识:了解基本的
Nest应用程序构建模块。
构建项目
# npm
npm i -g @nestjs/cli
# yarn
yarn global add @nestjs/cli
nest new project-nest
运行上述命令,将创建 project-nest 项目目录,安装 node_modules 和一些其他样板文件,并创建一个 src 目录。
使用 Nest CLI 搭建项目会创建一个初始项目结构。但建议:将每个模块保存在自己的专用目录中。
# 初始项目结构
project-nest
├── dist
│ ├── app.controller.d.ts
│ ├── app.controller.js
│ ├── app.controller.js.map
│ ├── app.module.d.ts
│ ├── app.module.js
│ ├── app.module.js.map
│ ├── app.service.d.ts
│ ├── app.service.js
│ ├── app.service.js.map
│ ├── main.d.ts
│ ├── main.js
│ ├── main.js.map
│ └── tsconfig.build.tsbuildinfo
├── nest-cli.json
├── package.json
├── README.md
├── readmeup.md
├── src
│ ├── app.controller.spec.ts
│ ├── app.controller.ts
│ ├── app.module.ts
│ ├── app.service.ts
│ └── main.ts
├── test
│ ├── app.e2e-spec.ts
│ └── jest-e2e.json
├── tsconfig.build.json
├── tsconfig.json
└── yarn.lock
核心文件
├── src
│ ├── app.controller.spec.ts # 对于基本控制器的单元测试样例
│ ├── app.controller.ts # 带有单个路由的基本控制器示例
│ ├── app.module.ts # 应用程序的根模块
│ ├── app.service.ts # 带有单个方法的基本服务
│ └── main.ts # 应用程序入口文件
main.ts 使用 NestFactory 创建 Nest 应用实例。
/**
* @description: 应用程序入口文件
* @update: 2021-09-07 21:12:01
* @author: Ada.H
*/
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
// 使用 NestFactory 核心类创建一个 Nest 应用实例 app
// create() 方法返回一个实现 INestApplication 接口的对象
const app = await NestFactory.create(AppModule);
// 启动 HTTP 服务器
await app.listen(3000);
}
bootstrap();
平台无关
Nest 旨在成为一个与平台无关的框架,在创建适配器后可以使用任何 Node HTTP 框架。有两个支持开箱即用的 HTTP 平台:Express(默认)和 Fastify。
| 平台名称 | 平台特点 |
|---|---|
platform-express | 众所周知;简约;经过实战考验,适用于生产;拥有大量的社区资源;无需采取任何操作即可启用。 |
platform-fastify | 高性能,低开销,专注于效率和速度。 |
// 将类型传递给 NestFactory.create() 函数时,app 对象将具有专用于该特定平台的函数。
const app = await NestFactory.create<NestExpressApplication>(AppModule);
请注意:除非确实要访问底层平台 API,否则无需指定类型。