一、介绍
提供器是 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