Nest.js 是如何实现 AOP 架构的?
Posted 奇舞精选
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nest.js 是如何实现 AOP 架构的?相关的知识,希望对你有一定的参考价值。
Nest.js 是一个 Node.js 的后端框架,它对 express 等 http 平台做了一层封装,解决了架构问题。它提供了 express 没有的 MVC、IOC、AOP 等架构特性,使得代码更容易维护、扩展。
这里的 MVC、IOC、AOP 都是啥意思呢?我们分别看一下:
Middleware等多种发展方向供员工选择,并辅以提供相应的技术力、专业力、通用力、领导力等@Module(
imports: [
UsersModule,
PassportModule,
JwtModule.register(
secret: jwtConstants.secret,
signOptions: expiresIn: '60s' ,
),
],
providers: [AuthService, LocalStrategy],
exports: [AuthService, JwtModule],
)
【问题讨论】:
【参考方案1】:要允许注册同一服务的多个变体,您将需要在JwtModule
周围使用自定义提供程序和包装器模块。它可能看起来像这样:
@Module(
imports: [JwtModule.register(
secret: secret1,
signOptions: expiresIn: '60s' ,
)],
providers: [
provide: 'JwtSecret1Service',
useExisting: JwtService,
],
exports: ['JwtSecret1Service'],
)
export class JwtSecret1Module
现在您可以使用@Inject('JwtSecret1Service')
来使用此特定配置,只要将JwtSecret1Module
添加到消费模块的imports
即可。您可以根据需要使用任意数量的JwtService
变体来执行此操作,并且每个变体都有自己的配置
【讨论】:
还有其他需要注意的配置吗?对我来说,这仍然使用初始的 JwtService 你为每个你想使用的JwtService
做这个模块,然后在你需要新服务的地方导入这个模块。然后用具体的名字代替JwtService
@JayMcDoniel 您能否展示在同一模块中使用此实例的示例?我就是不能来这里。
不能在同一个模块中进行。这就是为什么您必须使用 useExisting
和自定义提供程序名称来完成这些单独的模块以上是关于Nest.js 是如何实现 AOP 架构的?的主要内容,如果未能解决你的问题,请参考以下文章