用户登录

Provider,它的字面意思就是提供者,供应者,或者供应商。在 Nest.js 框架里,很多东西可以看作是 Provider,比如我们经常用的服务就是一种 Provider。

打开应用的 app.service.ts,在 Nest 框架里,Provider 一般都会使用 @Injectable 这个装饰器装饰一下。这样在这个类里面就可以注入依赖了。

定义 Service Provider

下面再通过一个例子理解一下 Nest 框架的依赖注入。在 src 目录的下面,我们可以创建一个 Service Provider。文件的名字可以是 logger.service.ts 。

Provider 一般会用 @Injectable 装饰一下,这个装饰器来自 @nestjs/common ,然后 export 导出一个 class,名字是 LoggerService 。

类里面添加一个 log 方法,方法接收一个 message 参数,类型是 string。这个方法做的事情就是用一下 console.log,输出它的 message 参数的值。

提示 tslint 不让使用 console.log,可以打开 tslint.json 这个配置文件,在它的 rules 里面,添加一个 no-console 配置,它的值设置成 false,这样在代码里就允许使用 console.log 了。

注入依赖

再打开 AppService,假设在这个服务里面,需要使用刚才创建的 LoggerService 里的功能,所以可以把 LoggerService 作为这个类的依赖注入进来。

标准的注入依赖的方法就是通过类的构造方法来做,给它添加一个构造方法,然后添加一个参数属性,private readonly,参数属性的名字可以叫 logger。再设置一下它的类型,设置成 LoggerService。

这里的这个 LoggerService 其实是一个东西的名字。Nest 会根据这里设置的这个东西的名字来得到对应的值,这个东西的值具体是什么是我们自己配置的,一般就是一个类的实例。这里就是 LoggerService 这个类的实例。

在这个 getHello 方法里面,可以用一下它的 logger ,它上面有个 log 方法,输出的内容是 AppService: Hello World!

定义与注入 Provider《 企业级应用架构:依赖注入 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点