Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 巢罐';t解析CommonModule的依赖关系_Javascript_Nestjs - Fatal编程技术网

Javascript 巢罐';t解析CommonModule的依赖关系

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.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('*')
  }
}
但当我尝试运行它时:

嵌套无法解析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(“*”)
}
}