一、起步
// nestjs脚手架安装
npm install -g @nestjs/cli
// 新建一个项目
nest new demo
二、目录结构
三、程序入口 main.ts
// NestFactory核心类暴露一些静态方法用来创建应用实例
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
// create 方法返回一个实现 INestApplication 接口的对象
const app = await NestFactory.create(AppModule);
// 端口号为 3000
await app.listen(3000);
}
bootstrap();
四、根模块 app.module.ts
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
// @Module()装饰器提供了元数据,Nest 用它来组织应用程序结构
@Module({
// 由 Nest 注入器实例化的控制器
controllers: [AppController],
// 由 Nest 注入器实例化的提供者
providers: [AppService],
// 导入模块的列表,这些模块导出了此模块中所需提供者
imports: [],
// 由本模块提供并应在其他模块中可用的提供者的子集
exports: []
})
export class AppModule {}
五、提供者 app.serive.ts
import { Injectable } from '@nestjs/common';
// @Injectable() 声明当前类为提供者 处理业务逻辑
@Injectable()
export class AppService {
getHello(): string {
return 'Hello World!';
}
}
六、控制器 app.controller.ts
import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';
// @Controller() 声明当期类为控制器 接收应用程序的特定请求
@Controller()
export class AppController {
// 依赖注入 AppService
constructor(private readonly appService: AppService) {}
// @Get() HTTP请求方法装饰器
@Get()
getHello(): string {
return this.appService.getHello();
}
}
七、启动应用程序
npm run start
打开浏览器访问 http://localhost:3000 返回 ’Hello World!‘