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

NestJS动态Mongoose模块无法注入Symbol(MONGO_MODULE_OPTIONS)问题求助

NestJS动态Mongoose模块无法注入Symbol(MONGO_MODULE_OPTIONS)问题求助

我正在尝试构建一个动态模块,用来帮我自动注册Mongoose,但在使用MongooseModule.forRootAsync({...})异步注入配置选项时遇到了麻烦——系统一直提示无法注入Symbol(MONGO_MODULE_OPTIONS),我完全搞不懂哪里出了问题。

我已经在动态模块里导出了Symbol(MONGO_MODULE_OPTIONS),相关代码如下:

const asyncProviders = this.createAsyncProviders(options);
const databaseOptionsModule = {
  module: MongoModule,
  imports: [...(options.imports ?? [])],
  providers: [...asyncProviders],
  exports: [MONGO_MODULE_OPTIONS],
};

后来我换了思路,尝试在同一个动态模块里直接调用MongooseModule.forRootAsync,但问题依然存在。运行e2e测试时,始终弹出如下错误:

$ pnpm test:e2e

bugs@0.0.1 test:e2e /home/kasir/projects/bugs
jest --config ./test/jest-e2e.json

FAIL test/app.e2e-spec.ts
AppController (e2e)
✕ / (GET) (6 ms)

● AppController (e2e) › / (GET)

Nest can't resolve dependencies of the MongooseModuleOptions (?). Please make sure that the argument Symbol(MONGO_MODULE_OPTIONS) at index [0] is available in the MongooseCoreModule context.

Potential solutions:

  • Is MongooseCoreModule a valid NestJS module?
  • If Symbol(MONGO_MODULE_OPTIONS) is a provider, is it part of the current MongooseCoreModule?
  • If Symbol(MONGO_MODULE_OPTIONS) is exported from a separate @Module, is that module imported within MongooseCoreModule?
    @Module({
    imports: [ /* the Module containing Symbol(MONGO_MODULE_OPTIONS) */ ]
    })

有没有什么可行的解决方案?除了改用同步版本的register API(这个我知道能生效,但不想用),其他建议都可以!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 07:00:27