gpt4 book ai didi

javascript - 从另一个模块注入(inject)nestjs服务

转载 作者:IT老高 更新时间:2023-10-28 23:09:24 25 4
gpt4 key购买 nike

我有一个 PlayersModule 和一个 ItemsModule

我想在 PlayersService 中使用 ItemsService

当我通过注入(inject)添加时:

import { Injectable } from '@nestjs/common';
import { InjectModel } from 'nestjs-typegoose';
import { ModelType, Ref } from 'typegoose';
import { Player } from './player.model';
import { Item } from '../items/item.model';
import { ItemsService } from '../items/items.service';

@Injectable()
export class PlayersService {
constructor(
@InjectModel(Player) private readonly playerModel: ModelType<Player>,
private readonly itemsService: ItemsService){}

我得到这个嵌套错误:

[Nest] 11592 - 2018-8-13 11:42:17 [ExceptionHandler] Nest can't resolve dependencies of the PlayersService (+, ?). Please make sure that the argument at index [1] is available in the current context.

两个模块都导入到 app.module.ts 中。两种服务都在各自的模块中单独工作。

最佳答案

您必须在提供它的模块中导出 ItemsService:

@Module({
controllers: [ItemsController],
providers: [ItemsService],
exports: [ItemsService]
^^^^^^^^^^^^^^^^^^^^^^^
})
export class ItemsModule {}

然后在使用该服务的模块中导入导出的模块:

@Module({
controllers: [PlayersController],
providers: [PlayersService],
imports: [ItemsModule]
^^^^^^^^^^^^^^^^^^^^^^
})
export class PlayersModule {}

⚠️ 不要将同一个提供者添加到多个模块中。导出提供者,导入模块。 ⚠️

关于javascript - 从另一个模块注入(inject)nestjs服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51819504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com