我创建了一个auth middlewere来检查每个请求,中间是使用服务器(仅当在req.connection中找不到数据时)。 我试图将服务注入到我的中间位置并且我一直得到同样的错误" Nest无法解决AuthenticationMiddleware(?)的依赖关系。请验证当前上下文中是否有[0]参数。"
AuthenticationModule:
@Module({
imports: [ServerModule],
controllers: [AuthenticationMiddleware],
})
export class AuthenticationModule {
}
AuthenticationMiddleware:
@Middleware()
export class AuthenticationMiddleware implements NestMiddleware {
constructor(private service : UserService) {}
resolve(): (req, res, next) => void {
return (req, res, next) => {
if (req.connection.user)
next();
this.service.getUsersPermissions()
}
}
ServerModule:
@Module({
components: [ServerService],
controllers: [ServerController],
exports: [ServerService]
})
export class ServerModule {}
ApplicationModule:
@Module({
imports: [
CompanyModule,
ServerModule,
AuthenticationModule
]
})
export class ApplicationModule implements NestModule{
configure(consumer: MiddlewaresConsumer): void {
consumer.apply(AuthenticationMiddleware).forRoutes(
{ path: '/**', method: RequestMethod.ALL }
);
}
}
答案 0 :(得分:5)
您的应用可能无法解决AuthMiddleware
个依赖关系,因为您向其中注入了UserService
,但导入ServerModule
的{{1}}只会导出AuthenticationModule
{1}}。那么,应该做的是:
ServerService
您可以找到有关NestJS依赖性容器here的更多信息。