四、认识Nest项目
Nest项目目录结构
项目的目录结构与前端框架非常相似,先看一下是怎么样的:
project
|--- dist 项目打包目录
|--- node_modules 需要用到的官方模块
|--- src 项目源码目录
|--- test 项目测试目录
|--- .eslintrc.js ESLint配置文件
|--- .gitignore git忽略配置文件
|--- .prettierrc prettier配置文件
|--- nest-cli.json nest相关配置文件
|--- package.json 项目相关配置文件
|--- package-lock.json 项目相关配置文件
|--- README.md 说明文件
|--- tsconfig.build.json ts相关配置文件
|--- tsconfig.json ts相关配置文件
以上是项目中的目录,接下来重点讲一下 src 目录的结构。src的目录结构为:
src
|--- app.controller.ts 单个路由的基本控制器
|--- app.controller.spec.ts 针对控制器的单元测试
|--- app.module.ts 应用的根模块(root)
|--- app.service.ts 单一方法的基本服务(methods)
|--- main.ts 应用的入口文件
简单来说,根模块 app.module 可用于处理其他类的引用与共享,根控制器app.controller 一般是用来处理 http 网络请求以及调用 service 层的处理方法,根服务 app.service 则是用于封装通用的业务逻辑、与数据库层的交互、其他额外的第三方请求。
应用入口文件Main.ts
Nest项目入口文件是采用 NestFactory 核心函数来创建该项目的应用程序。接下来可以看一下代码:
// 导入核心创建项目工程函数
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
// 该函数为异步函数:引导应用程序启动过程
async function bootstrap() {
// 使用create方法进行创建应用模块
const app = await NestFactory.create(AppModule);
// 监听端口设置在3000,对应:http://localhost:3000
await app.listen(3000);
}
bootstrap();
如果需要指定不一样的平台可以使用以下设置,目前 Nest 支持任何 Node HTTP 框架,目前只有 Express 和 Fastify。
// Express 框架
const app = await NestFactory.create<NestExpressApplication>(AppModule);
// Fastify 框架
const app = await NestFactory.create<NestFastifyApplication>(AppModule);