You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nest.js中间件中正确注入使用@nestjs/axios的HttpService

Nest.js中向中间件注入@nestjs/axios的HttpService的正确方案

报错的核心原因是你错误地手动将HttpService添加到了AppModule的providers列表中:HttpService本身依赖@nestjs/axios模块内部提供的AXIOS_INSTANCE_TOKEN令牌,手动注册provider不会自动注入这个依赖,因此触发了依赖解析失败的报错。

正确操作步骤如下:

  • 第一步:确认已安装必需依赖
npm install @nestjs/axios axios
  • 第二步:修改AppModule配置,在imports字段引入HttpModule,删除providers中手动添加的HttpService
    如需全局配置axios参数(比如超时时间、统一baseURL),可以使用HttpModule.register()方法传入配置项,无特殊需求直接引入即可。
    正确的app.module.ts代码示例:
import { HttpModule } from '@nestjs/axios';
import { Module, NestModule, MiddlewareConsumer, RequestMethod } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { CaptchaMiddleware } from './captcha.middleware';

@Module({
  imports: [HttpModule],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule implements NestModule {
  configure(consumer: MiddlewareConsumer) {
    consumer
      .apply(CaptchaMiddleware)
      .forRoutes(
        { path: '/users', method: RequestMethod.POST }
      );
  }
}
  • 第三步:captcha.middleware.ts的代码不需要任何修改,HttpService会通过Nest的依赖注入系统自动实例化并注入到中间件中。

内容的提问来源于stack exchange,提问作者Obvious_Grapefruit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 08:09:03