1. 安装脚手架
npm i -g @nestjs/cli
创建项目
nest new 【项目名称】
2. 创建完成目录结构说明
├─.eslintrc.js
├─.gitignore
├─.prettierrc
├─README.md
├─nest-cli.json
├─package-lock.json
├─package.json
├─tsconfig.build.json
├─tsconfig.json
├─test
| ├─app.e2e-spec.ts
| └jest-e2e.json
├─src
| ├─app.controller.spec.ts
| ├─app.controller.ts
| ├─app.module.ts
| ├─app.service.ts
| └main.ts
- main.ts
应用程序入口文件,创建一个NestJS应用程序实例并将其挂载在HTTP服务器上。
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
类似vue的main.ts,通过NestFactory.create(AppModule)创建一个app,类似绑定一个根组件App.vue。 app.listen(3000)开启服务,监听一个端口
- app.service.ts
服务文件,包含应用程序业务逻辑的实现,可以在控制器中调用该服务
import { Injectable } from '@nestjs/common';
/** service 相当于写业务逻辑,提供数据方,需要注入到调用方 此处猜测是controller */
@Injectable()
export class AppService {
getHello(): string {
return 'Hello World!';
}
get666(): string {
return '666';
}
}
- app.controller.ts
控制器文件,处理来自客户端的请求并将响应返回给客户端。
import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';
/** 此处与路由进行通信 此处添加的是公共的路径 /get/hello /get/666 */
@Controller('get')
export class AppController {
constructor(private readonly appService: AppService) {}
/** 相当于AppService 需要注入进来, 直接去调用上面的方法 */
@Get('hello')
getHello(): string {
return this.appService.getHello();
}
@Get('666')
get666(): string {
return this.appService.get666();
}
}
- app.module.ts
应用程序的根模块,用于导入其他模块、控制器和服务。
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
/** 此处将收集的数据 进行提供 */
@Module({
imports: [],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
3. cli 常用命令
nest --help
可快速生成模块 创建的模块会自动引入主文件的app.module.ts中
- 生成controller.ts nest g co user
- 生成module.ts nest g mo user
- 生成service.ts nest g s user
如何快速curd的模版
nest g resource user