如何将配置传递给 forRoot
How to pass configuration into forRoot
如何将配置对象传递到 AppModule 中的 forRoot()
?如果模块中没有constructor
,有没有办法访问configService
?
config.yml
:
smtp:
host: 'smtp.host.com'
port: 10
secure: true
auth:
user: 'username'
auth: 'password'
@Module({
imports: [
ConfigModule.forRoot({ isGlobal: true }),
MailModule.forRoot(), // I want to pass configuration here
],
})
export class AppModule {}
通常你需要一个像forRootAsync
这样的异步注册方法,但是由模块创建者提供这个方法。如果此方法确实存在,您可以使用工厂和 inject
创建类似 class 的提供程序系统,Nest 可以使用 as shown in the database docs 注入该系统。不知道你用的是哪个邮件模块,支持不支持就不好说了
如果没有这种异步注册方法,就无法在 forRoot
中使用 DI。
我安装了 config
包并像这样使用它:
import * as config from 'config';
const smtpConfig = config.get('smtp');
@Module({
imports: [
MailModule.forRoot(smtpConfig),
],
})
export class AppModule {}
如何将配置对象传递到 AppModule 中的 forRoot()
?如果模块中没有constructor
,有没有办法访问configService
?
config.yml
:
smtp:
host: 'smtp.host.com'
port: 10
secure: true
auth:
user: 'username'
auth: 'password'
@Module({
imports: [
ConfigModule.forRoot({ isGlobal: true }),
MailModule.forRoot(), // I want to pass configuration here
],
})
export class AppModule {}
通常你需要一个像forRootAsync
这样的异步注册方法,但是由模块创建者提供这个方法。如果此方法确实存在,您可以使用工厂和 inject
创建类似 class 的提供程序系统,Nest 可以使用 as shown in the database docs 注入该系统。不知道你用的是哪个邮件模块,支持不支持就不好说了
如果没有这种异步注册方法,就无法在 forRoot
中使用 DI。
我安装了 config
包并像这样使用它:
import * as config from 'config';
const smtpConfig = config.get('smtp');
@Module({
imports: [
MailModule.forRoot(smtpConfig),
],
})
export class AppModule {}