【发布时间】:2020-12-14 04:11:28
【问题描述】:
我是 NEST.js 世界的新手,我正在尝试创建简单的中间件。 首先,我用这个命令创建了一个中间件:
nest g middleware common/middleware/logging
在我添加我的代码之后
import { Injectable, NestMiddleware } from '@nestjs/common';
@Injectable()
export class LoggingMiddleware implements NestMiddleware {
use(req: any, res: any, next: () => void) {
console.time('Request-response time');
console.log('Hi from middleware!');
res.on('finish', () => console.timeEnd('Request-response time'));
next();
}
}
最后,我添加了中间件
import { Module, MiddlewareConsumer } from '@nestjs/common';
import { APP_GUARD } from '@nestjs/core';
import { ApiKeyGuard } from './guards/api-key.guard';
import { ConfigModule } from '@nestjs/config';
import { LoggingMiddleware } from './middleware/logging.middleware';
@Module({
imports: [
ConfigModule
],
providers: [
{
provide: APP_GUARD,
useClass: ApiKeyGuard
}
]
})
export class CommonModule {
constructor(consumer: MiddlewareConsumer) {
consumer.apply(LoggingMiddleware).forRoutes('*')
}
}
但是当我尝试运行它时:
Nest 无法解析 CommonModule (?) 的依赖关系。请做出来 确保索引 [0] 处的参数 Object 在 CommonModule 上下文。
可能的解决方案:
- 如果 Object 是提供者,它是当前 CommonModule 的一部分吗?
- 如果 Object 是从单独的 @Module 导出的,那么该模块是否会导入 CommonModule 中? @模块({ 导入:[ /* 包含对象的模块 */ ] }) +2ms 错误:Nest 无法解析 CommonModule (?) 的依赖项。请做出来 确保索引 [0] 处的参数 Object 在 CommonModule 上下文。
可能的解决方案:
- 如果 Object 是提供者,它是当前 CommonModule 的一部分吗?
- 如果 Object 是从单独的 @Module 导出的,那么该模块是否会导入 CommonModule 中? @模块({ 导入:[ /* 包含对象的模块 */ ] })
你能帮帮我吗?
【问题讨论】:
标签: javascript nestjs