【Nest】依赖注入

2021/09/06 17:33:58

Nest 的依赖注入用法与 Angular 一样。

用 @Injectable() 装饰器定义一个服务,然后在需要的地方注入。

Nest 的服务要想在 controller 中使用必须先注册,即将服务添加到 @Module() 装饰器的 providers 数组中。

使用方法

定义服务

  • app.service.ts
import { Injectable } from "@nestjs/common";

@Injectable()
export class AppService {
  getHello(): string {
    return "Hello World!";
  }
}

注册服务

  • 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 {}

注入服务

  • app.controller.ts
import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service'

@Controller('cats')
export class AppController {

  constructor(
    public appSer: AppService
  ) { }

  count: number = 0

  @Get()
  findAll() {
    return this.appSer.getHello();
  }
}