NestJS未定义依赖项

编程入门 行业动态 更新时间:2024-10-06 18:26:20

NestJS<a href=https://www.elefans.com/category/jswz/34/1771258.html style=未定义依赖项"/>

NestJS未定义依赖项

我在NestJS项目中使用nestjs-i18n版本8.0.2对字符串进行国际化。我的一个模块中有一个具有此构造函数的类:

    constructor(
        @InjectRepository(UsersRepository)
        private readonly usersRepository: UsersRepository,
        private readonly apiService: ApiService,
        private readonly i18n: I18nRequestScopeService,
    ) {
    }

这是完整的课程:

@QueryHandler(MyQuery)
export class MyQueryHandler implements IQueryHandler<MyQuery> {

    constructor(
        @InjectRepository(UsersRepository)
        private readonly usersRepository: UsersRepository,
        private readonly apiService: ApiService,
        private readonly i18n: I18nRequestScopeService,
    ) {
    }

    async execute(query: MyQuery): Promise<MyResult> {
        ...
    }
}

[QueryHandler是cqrs库@nestjs/cqrs版本6.1.0中的修饰符,如果有帮助的话。

[由于某种原因,如果我尝试如图所示注入I18nRequestScopeService,则我的3个依赖项未定义,但是如果删除usersRepository注入,则正确定义了apiServiceI18nRequestScopeService。日志中未显示警告或错误。

我有一个带有此构造函数的自定义ExceptionFilter

    constructor(private readonly i18n: I18nRequestScopeService) {
    }

而且效果很好。

app.module.ts中,我有这个:

@Module({
    imports: [
        ...
        I18nModule.forRoot({
            fallbackLanguage: 'en',
            parser: I18nJsonParser,
            parserOptions: {
                path: path.join(__dirname, 'i18n/'),
            },
            resolvers: [
                { use: QueryResolver, options: ['lang', 'locale', 'l'] },
                new HeaderResolver(['x-custom-lang']),
                AcceptLanguageResolver,
                new CookieResolver(['lang', 'locale', 'l']),
            ],
        })
    ],
    ...
})

我尝试使用Google搜索这个问题,但我没有运气。我想念什么?

回答如下:

Nest的CQRS的实现不允许有作用域的提供程序。 There is an open issue about it here

更多推荐

NestJS未定义依赖项

本文发布于:2024-05-07 21:30:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757342.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:未定义   NestJS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!