当声明一个配置模块时,你可以像这样传递一个对象:
ConfigModule.forRoot({
envFilePath: ['.env'],
isGlobal: true,
load: [config],
}),
此加载参数是返回 javascript 对象的函数列表,然后将其添加到您的配置中,然后您可以使用 ConfigService 来获取您的配置:
ConfigService.get("NODE_ENV") //This gets a configuration loaded from .env file
ConfigService.get("mongoose.connectionOptions") //This is a config you setted in app.config.ts for example and return an object containing mongoose connection options
您的配置文件可能如下所示:
var config = {
app: {
environment: process.env.NODE_ENV,
},
sentry: {
dsn: process.env.SENTRY_DSN,
tracesSampleRate: 1.0,
},
rabbit: {
connection: {
protocol: process.env.RABBITMQ_PROTOCOL,
hostname: process.env.RABBITMQ_HOST,
port: process.env.RABBITMQ_PORT,
vhost: process.env.RABBITMQ_VHOST,
username: process.env.RABBITMQ_USERNAME,
password: process.env.RABBITMQ_PASSWORD,
},
},
mongo: {
user: process.env.MONGO_USER,
password: process.env.MONGO_PASS,
dbName: process.env.MONGO_NAME,
port: process.env.MONGO_PORT,
host: process.env.MONGO_HOST,
connString: `mongodb://${process.env.MONGO_HOST}:${process.env.MONGO_PORT}/${process.env.MONGO_NAME}?authSource=admin`,
},
mongooseOptions: {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
user: process.env.MONGO_USER,
pass: process.env.MONGO_PASS,
keepAlive: true,
uri: `mongodb://${process.env.MONGO_HOST}:${process.env.MONGO_PORT}/${process.env.MONGO_NAME}?authSource=admin`,
},
};
var {
protocol,
username,
password,
hostname,
port,
vhost,
} = config.rabbit.connection;
config.rabbit.connection.connString = `${protocol}://${username}:${password}@${hostname}:${port}/${vhost}`;
export default () => config;