一直在使用 Advanced NestJS 研究动态模块:如何构建完全动态的 NestJS 模块。
据我所知,大多数人使用本指南来构建同步/异步动态模块。
但是我的问题是,如果我使用 registerAsync 方法,并且我的动态模块需要导入 HttpModule,而 HttpModule 的 register-options 是由我的动态模块提供的。
如何在动态模块中导入模块,动态模块提供选项?或者是处理这个问题的错误方法?如果是这样,你会如何构建它?
这是代码。这实际上是本教程的副本。正如您在 register 方法中看到的那样,它很简单 - 我只是传入选项。registerAsync 但是,我无法弄清楚该怎么做。
任何帮助深表感谢 :)
import { Module, DynamicModule, Provider, HttpModule } from "@nestjs/common";
import { InvoicesHealth } from "./invoices/invoices.health";
import { InvoicesResolver, InvoicesService } from "./invoices";
import {
CustomerInvoicesOptions,
CustomerInvoicesAsyncOptions,
CustomerInvoicesOptionsFactory,
} from "./interfaces";
import { CUSTOMER_INVOICES_OPTIONS } from "./constants";
import { createCustomerInvoicesProviders } from "./providers/customer-invoices.providers";
@Module({
imports: [],
controllers: [],
providers: [InvoicesHealth, InvoicesResolver, InvoicesService],
exports: [InvoicesHealth],
})
export …Run Code Online (Sandbox Code Playgroud) 我正在 NestJS 中创建一个微服务。现在我想使用 RabbitMQ 将消息发送到另一个服务。
我的问题是:是否可以基于.env变量导入 RabbitmqModule ?如:
USE_BROKER=false。如果这个变量是假的,那么不导入模块?
RabbitMQ 是在下面的 GraphQLModule 中导入的。
@Module({
imports: [
GraphQLFederationModule.forRoot({
autoSchemaFile: true,
context: ({ req }) => ({ req }),
}),
DatabaseModule,
AuthModule,
RabbitmqModule,
],
providers: [UserResolver, FamilyResolver, AuthResolver],
})
export class GraphQLModule {}
Run Code Online (Sandbox Code Playgroud)
RabbitMQ模块:
import { Global, Module } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { RabbitMQModule } from '@golevelup/nestjs-rabbitmq';
import { UserProducer } from './producers/user.producer';
@Global()
@Module({
imports: [
RabbitMQModule.forRootAsync(RabbitMQModule, {
useFactory: async (config: ConfigService) …Run Code Online (Sandbox Code Playgroud) 我想使用 super 的构造函数将子类实例传递给超类,但出现此错误
super(this);
Run Code Online (Sandbox Code Playgroud)
这在超类构造函数调用之前是不允许的
为什么我收到这个错误,我该如何解决这个问题
class Parent
{
constructor(child)
{
this.child = child;
}
//...somewhere in code
//child.doSomething();
}
class Child extends Parent
{
constructor()
{
super(this); // <==== the error here
}
doSomething = () =>
{
//...
}
}
Run Code Online (Sandbox Code Playgroud) module ×2
nestjs ×2
dynamic ×1
ecmascript-6 ×1
es6-class ×1
import ×1
javascript ×1
rabbitmq ×1
typescript ×1