#nestjs
Вопрос:
Я внедряю API в NestJS, который будет использовать другой API, я использую @nestjs/axios.
Я следовал этому уроку: https://docs.nestjs.com/techniques/http-module
Но когда я начинаю проект с yarn start:dev
Это создает исключение, как:
ERROR [ExceptionHandler] Nest can't resolve dependencies of the HttpService (?). Please make sure that the argument AXIOS_INSTANCE_TOKEN at index [0] is available in the AxelGlobeModule context.
Potential solutions:
- If AXIOS_INSTANCE_TOKEN is a provider, is it part of the current AxelGlobeModule?
- If AXIOS_INSTANCE_TOKEN is exported from a separate @Module, is that module imported within AxelGlobeModule?
@Module({
imports: [ /* the Module containing AXIOS_INSTANCE_TOKEN */ ]
})
Мое приложение.модуль.ts
@Module({
imports: [
FileModule,
ConfigurationModule,
AxelGlobeModule,
HttpModule.registerAsync({
imports: [ConfigModule],
useFactory: async (configService: ConfigService) => ({
timeout: configService.get('HTTP_TIMEOUT') || 1000,
maxRedirects: configService.get('HTTP_MAX_REDIRECTS') || 5,
baseURL: `{url}`,
paramsSerializer: (params) => {
return qs.stringify(
params,
PARAMS_SERIALIZER_DEFAULT_OPTIONS as IStringifyOptions,
);
},
}),
inject: [ConfigService],
}),
],
controllers: [AppController],
providers: [AppService, HttpModule, HttpService],
exports: [HttpModule],
})
Мой аксель-глобус.модуль.ts
@Module({
controllers: [AxelGlobeController],
imports: [ConfigModule.forRoot(), HttpModule],
providers: [AxelGlobeService, HttpService],
})
Моя служба.ts
constructor(private readonly httpService: HttpService) {}
Кто-нибудь может мне помочь?
Ответ №1:
отбросьте это HttpService
из своего providers
списка. Вам просто нужно импортировать HttpModule
, чтобы HttpService
поставщик был доступен для использования. Следуйте инструкциям https://docs.nestjs.com/techniques/http-module#getting-started
Комментарии:
1. Хорошая мысль, сейчас это работает.