#nestjs
#nestjs
Вопрос:
Пытаюсь использовать мой ICommandBusAdapter.ts в моем CreateUserAction.ts, но получаю следующую ошибку: [ExceptionHandler] Nest can't resolve dependencies of the ICommandBusAdapter (?). Please make sure that the argument at index [0] is available in the AdapterModule context
Я создал AdapterModule
, который будет использовать все поставщики для других модулей, но, похоже, это не работает.
Есть идеи?
AppModule.ts
import { UserModule } from './User/UserModule';
import { AdapterModule } from './Common/AdapterModule';
@Module({
imports: [AdapterModule, UserModule, // ...],
})
export class AppModule {}
AdapterModule.ts
import { CommandBusAdapter } from 'src/Infrastructure/Adapter/Bus/CommandBusAdapter';
const providers = [
{ provide: 'ICommandBusAdapter', useClass: CommandBusAdapter },
// ...
];
@Module({
providers: [...providers],
exports: [...providers],
})
export class AdapterModule {}
UserModule.ts
import { Module } from '@nestjs/common';
import { CreateUserAction } from 'src/Infrastructure/Action/User/CreateUserAction';
@Module({
controllers: [CreateUserAction],
})
export class UserModule {}
CommandBusAdapter.ts
import { CommandBus, ICommand } from '@nestjs/cqrs';
import { ICommandBusAdapter } from 'src/Application/Adapter/Bus/ICommandBusAdapter';
@Injectable()
export class CommandBusAdapter implements ICommandBusAdapter {
constructor(private readonly commandBus: CommandBus) {}
execute = (command: ICommand) => {
return this.commandBus.execute(command);
};
}
CreateUserAction.ts
import { ICommandBusAdapter } from 'src/Application/Adapter/Bus/ICommandBusAdapter';
export class CreateUserAction {
constructor(
@Inject('ICommandBusAdapter')
private readonly commandBus: ICommandBusAdapter,
) {}
// ...
Комментарии:
1. Где это
CommandBus
предусмотрено?
Ответ №1:
Вы не забыли добавить CqrsModule
в свое приложение?
import { CqrsModule } from '@nestjs/cqrs';
@Module({
imports: [CqrsModule]
....
Без этого не будет ничего, обеспечивающего командную шину, которую вы пытаетесь внедрить.
Вы можете увидеть пример здесь:https://github.com/kamilmysliwiec/nest-cqrs-example/blob/master/src/heroes/heroes.module.ts
Комментарии:
1. Не стесняйтесь повышать голос или отмечать это как ответ, если это сработало для вас