Я пытаюсь использовать полосовой пакет GoLevelUp для интеграции полосы с моим проектом NestJs. Я могу импортировать пакет в мой глобальный модуль приложения, но я не могу фактически внедрить работающий клиент в назначенный контроллер.
(https://github.com/golevelup/nestjs/tree/master/packages/stripe ) ( https://www.npmjs.com/package/@golevelup/nestjs-stripe) (https://www.npmjs.com/package/@nestjs/core)
отредактировано.controller.ts:
import { InjectStripeClient } from '@golevelup/nestjs-stripe';
import Stripe from 'stripe';
@Controller('[REDACTED]')
export class MyAwesomeController {
constructor(
@InjectStripeClient() stripeClient: Stripe, //this line crashes
private readonly myService: MyCoolService
) { }
}
app.module.ts:
import { StripeModule } from '@golevelup/nestjs-stripe';
import { OtherModules } from 'where/ever';
@Module({
imports: [
ModuleA,
ModuleB,
...,
StripeModule.forRoot(StripeModule,
{
apiKey: 'PC_LOAD_KEY',
webhookConfig: {
// stripeWebhookSecret: 'PC_LOAD_SECRET'
//TODO -- same deal w/ config
stripeWebhookSecret: 'SHHHH',
},
}),
MoreModulues,
...,
],
controllers: [AppController, ControllerB, ControllerC, ...],
providers: [AppService, ServiceB, ServiceC, ...]
}
Приведенный выше код не может быть построен со следующей ошибкой:
Nest can't resolve dependencies of the [REDACTED]Controller (?, [REDACTED]Service). Please make sure that the argument Symbol(STRIPE_CLIENT_TOKEN) at index [0] is available in the [REDACTED]Module context.
Potential solutions:
- If Symbol(STRIPE_CLIENT_TOKEN) is a provider, is it part of the current [REDACTED]Module?
- If Symbol(STRIPE_CLIENT_TOKEN) is exported from a separate @Module, is that module imported within [REDACTED]Module?
@Module({
imports: [ /* the Module containing Symbol(STRIPE_CLIENT_TOKEN) */ ]
Мне нужно иметь возможность фактически создать экземпляр клиента полосы, чтобы я мог совершать вызовы API полосы. Без этого пакет непригоден для использования. Я немного не понимаю, как настроить это, чтобы оно не зависало.
Я попытался найти в пакете golevelup оскорбительный «STRIPE_CLIENT_TOKEN».
Здесь живет: https://github.com/golevelup/nestjs/tree/master/packages/stripe/src/stripe.constants.ts https://github.com/golevelup/nestjs/tree/master/packages/ полоса/src/stripe.decorators.tshttps://github.com/golevelup/nestjs/tree/master/packages/stripe/src/stripe.module.ts
Я также просмотрел официальный пакет полос, чтобы узнать, как настроить отсутствующие токены. На данный момент я в сорняках и мог бы сделать с указателем или рабочим примером. В противном случае я просто реализую это сам, используя примитивы Stripe™.
Похоже, что с тем, как написан StripeModule, вам нужно использовать StripeModule.forRoot()
в [REDACTED]Module
. StripeModule
не является глобальным, поэтому он предоставляет полосатый клиент (через его декоратор) только модулю, который настроил и импортировал модуль.
Я попробую. update Это компилируется. Я проверю и отчитаюсь после того, как помою эту чертову посуду.