通过cli创建nestjs项目
npm i -g @nestjs/cli
nest new [项目名称]
启动项目 我们需要热更新 就启动npm run start:dev就可以了
"start": "nest start", "start:dev": "nest start --watch", "start:debug": "nest start --debug --watch", "start:prod": "node dist/main",
目录介绍
1.main.ts 入口文件主文件 类似于vue 的main.ts
通过 NestFactory.create(AppModule) 创建一个app 就是类似于绑定一个根组件App.vue
app.listen(3000); 监听一个端口
import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule); await app.listen(3000); } bootstrap();
2.Controller.ts 控制器
你可以理解成vue 的路由
private readonly appService: AppService 这一行代码就是依赖注入不需要实例化 appService 它内部会自己实例化的我们主需要放上去就可以了
import { Controller, Get } from '@nestjs/common'; import { AppService } from './app.service'; @Controller() export class AppController { constructor(private readonly appService: AppService) {} @Get() getHello(): string { return this.appService.getHello(); } } //----------------------------------------------------- //修改地址之后 import { Controller, Get } from '@nestjs/common'; import { AppService } from './app.service'; @Controller('/get') export class AppController { constructor(private readonly appService: AppService) {} @Get('/hello') getHello(): string { return this.appService.getHello(); } }
3.app.service.ts
这个文件主要实现业务逻辑的 当然Controller可以实现逻辑,但是就是单一的无法复用,放到app.service有别的模块也需要就可以实现复用
import { Injectable } from '@nestjs/common'; @Injectable() export class AppService { getHello(): string { return 'Hello World!'; } }