首页 > 其他分享 >003提供器(provider)

003提供器(provider)

时间:2024-04-11 10:33:06浏览次数:22  
标签:CatsService 提供 Cat 003 cats export provider import

一、介绍

提供器是 Nest 中的一个基本概念。
许多基本的 Nest 类可以被视为提供器,例如: 服务、存储库、工厂、助手等等。
提供器的主要思想是它可以作为依赖注入;这意味着对象之间可以创建各种关系,并且 "接线" 这些对象的功能很大程度上可以委托给 Nest 运行时系统

我们可以把复杂处理逻辑交给提供器对应方法处理
我们之前在controller中直接返回了字符串,现在我们把它交给提供器处理;
先新建一个提供器cats.service.ts

import { Injectable } from '@nestjs/common';
import { Cat } from './interfaces/cat.interface';

@Injectable()
export class CatsService {
  private readonly cats: Cat[] = [];

  create(cat: Cat) {
    this.cats.push(cat);
  }

  findAll(): Cat[] {
    return this.cats;
  }
}

说明:
@Injectable是装饰器,说明修饰的类可以被nestjsIOC管理
Cat是自定义的一个ts接口

export interface Cat {
  name: string;
  age: number;
  breed: string;
}

创建好提供器后,我们需要在controller中引入

@Controller('cats')
export class CatsController {
  constructor(private catsService: CatsService) {} //这里引入提供器

  @Get()
  findAll(): Cat[] {
    return this.catsService.findAll();
  }
}

引入之后就可以用了吗?不是的,还需要在app.module.ts中注册provider

import { Module } from '@nestjs/common';
import { CatsController } from './cats/cats.controller';
import { CatsService } from './cats/cats.service';

@Module({
  controllers: [CatsController], //注册控制器
  providers: [CatsService], //注册提供器
})
export class AppModule {}

标签:CatsService,提供,Cat,003,cats,export,provider,import
From: https://www.cnblogs.com/idrinkmilk/p/18128273

相关文章