NestJS之01-框架介绍 cli

335 阅读1分钟

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 
  1. 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)开启服务,监听一个端口

  1. app.service.ts

服务文件,包含应用程序业务逻辑的实现,可以在控制器中调用该服务

import { Injectable } from '@nestjs/common';

/** service 相当于写业务逻辑,提供数据方,需要注入到调用方 此处猜测是controller */
@Injectable()
export class AppService {
  getHello(): string {
    return 'Hello World!';
  }
  get666(): string {
    return '666';
  }
}

  1. 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();
  }
}

  1. 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

image.png

可快速生成模块 创建的模块会自动引入主文件的app.module.ts中

  1. 生成controller.ts nest g co user
  2. 生成module.ts nest g mo user
  3. 生成service.ts nest g s user

image.png

如何快速curd的模版

nest g resource user