Javascript 巢罐';t解析CommonModule的依赖关系
我是NEST.js领域的新手,我正在尝试创建简单的中间件。 首先,我使用以下命令创建了一个中间件:Javascript 巢罐';t解析CommonModule的依赖关系,javascript,nestjs,Javascript,Nestjs,我是NEST.js领域的新手,我正在尝试创建简单的中间件。 首先,我使用以下命令创建了一个中间件: nest g middleware common/middleware/logging 在我添加代码之后 import { Injectable, NestMiddleware } from '@nestjs/common'; @Injectable() export class LoggingMiddleware implements NestMiddleware { use(req:
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('*')
}
}
但当我尝试运行它时:
嵌套无法解析CommonModule(?)的依赖项。请做
确保索引[0]处的参数对象在
公共模块上下文
可能的解决办法:
- 如果对象是提供者,它是当前CommonModule的一部分吗
- 若对象是从单独的@Module导出的,那个么该模块是在CommonModule中导入的吗@模块({ 导入:[/*包含对象的模块*/]})+2ms错误:嵌套无法解析CommonModule(?)的依赖项。请做 确保索引[0]处的参数对象在 公共模块上下文
- 如果对象是提供者,它是当前CommonModule的一部分吗
- 若对象是从单独的@Module导出的,那个么该模块是在CommonModule中导入的吗@模块({ 导入:[/*包含对象的模块*/]})
你能帮我吗?MiddlewareConsumer不是
构造函数的一部分。相反,您的模块类应该实现NestModule
,并且应该有一个configure
方法,该方法将consumer:MiddlewareConsumer
作为第一个也是唯一的参数
@模块({
进口:[
配置模块
],
供应商:[
{
提供:APP_GUARD,
使用类别:ApiKeyGuard
}
]
})
导出类CommonModule implmenets嵌套模块{
配置(使用者:MidlewareConsumer){
consumer.apply(LoggingMiddleware.forRoutes(“*”)
}
}