003提供器(provider)

news/发布时间2024/5/3 13:08:16

一、介绍

提供器是 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 {}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/44241583.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

SQL事前巡检插件

背景: 事故频发 •每年都会看到SQL问题引发的线上问题 不易发觉 •对于SQL性能问题测试在预发环境不易发现 •saas系统隔离字段在SQL条件中遗漏,造成越权风险 •业务初期SQL没问题,业务增长容易出现事故 •DBS慢SQL不支持实时报警,无法及时发现 •靠大家review代码总会出现遗…

.NET MAUI开源免费的UI工具包 - Uranium

前言 一直有小伙伴在微信公众号后台留言让我分享一下.NET MAUI相关的UI框架,今天大姚分享一个.NET MAUI开源、免费的UI工具包:Uranium。Uranium介绍 Uranium是一个.NET MAUI开源免费的UI工具包。它提供了一组用于构建现代应用程序的控件和实用程序,它构建在.NET MAUI基础架构…

[转帖]Ctrip Network Architecture Evolution in the Cloud Computing Era

http://arthurchiao.art/blog/ctrip-network-arch-evolution/ Preface This article comes from my talk Ctrip Network Architecture Evolution in the Cloud Computing Era in GOPS 2019 Shenzhen (a tech conference in Chinese).中文版:云计算时代携程的网络架构变迁。Pr…

IREE HLO与MLIR编译器

IREE HLO与MLIR编译器 MLIR(Multi-Level Intermediate Representation)是谷歌团队开发的开源编译器框架,提供了一套灵活的软件基础设施,以便规范中间表达式(IR)及其相互之间的转换,建立了一个友好的编译器开发平台,一些比较好的对MLIR框架解读可以参考。IREE项目也是谷歌…

Wpf color rgb combined mutablly

1.Red mixed Green generates Yellow 2.Red mixed Blue is purple 3.Green mixed Blue is Cyan