用户登录

🌲 新订年付会员,赠送一年会员资格。立即订阅

到目前为止这个动态模块跟普通的静态模块没有什么区别,下面可以给这个动态模块添加一点可以配置的东西。比如我想让这个模块可以配置一下 LoggerService 服务输出的信息添加的前缀。

回到 LoggerModule 模块,在它的这个 register 静态方法里面,添加一个参数,名字可以是 prefix,类型是 string,这样在导入这个模块的时候,使用这个 register 静态方法返回模块的时候,可以给这个方法提供一个 prefix 参数的值,然后在 LoggerService 这个服务里面,我们可以利用一下这个参数的值。

要想使用这个参数的值,可以通过依赖注入的方法,所以我们需要先配置一个 Provider,在返回的模块里面,在 providers 这个属性里再配置一个 Provider,一个对象,先用 provide 设置一下这个 Provider 的名字,比如 PREFIX ,然后再用 useValue,设置一下这个 PREFIX Provider 的值,可以设置成给 register 方法提供的 prefix 这个参数的值。

配置好了这个 Provider,我们就可以在这个模块里面的其它的 Provider 那里,使用依赖注入的方法获取到使用这个模块的时候,给 register 方法提供的 prefix 这个参数的值了。

打开这个模块里的 LoggerService,给它添加一个 constructor 构造方法,然后用一下 @Inject 装饰器,参数的值设置成 PREFIX,再添加一个参数属性,private readonly ,名字是 prefix,类型应该是 string。

在 log 方法里面,用 console.log 输出 message 参数值的前面,可以再添加一个前缀,就是 this.prefix。

然后打开 CommonModule 模块,在这个模块里导入使用了 LoggerModule 这个动态模块,现在这个模块的 register 静态方法需要一个 prefix 参数,这个参数值是一个字符串,可以用一个表情符号。🐾

打开 Http 客户端,请求一下 profile 这个地址,再回到终端观察一下。 这次你会发现,输出 UserController: getHello 这条信息的时候,它的前面多了一个前缀,这里就是一个表情符号。 输出这条信息用的是 LoggerModule 模块里的 LoggerService 提供的功能,LoggerModule 是个动态模块,导入这个模块的时候,配置了一下这个模块,提供了一个前缀信息,在 LoggerService 里面用到了这个前缀信息。所以这里才会出现这样一个表情符号。

下面可以换一个前缀再试一下,打开 Http 客户端,重新请求 profile ,再回到终端观察一下。你会发现这次输出的这条信息的前缀会变成一个小叶子的表情符号。

动态模块:添加与使用配置选项《 企业级应用架构:模块 》

统计

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

社会化网络

关于

微信订阅号

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