请问一下大佬们,我有一个需求这样:在生产环境下,不能直接在config.prod.js中硬编码mongodb数据库的地址、账号、密码等敏感配置信息,如何在应用启动前,将敏感配置信息传入,从而应用到egg-mongoose插件中。 我的实现这样子:在生产环境中新建extend-config.json文件,该文件里面写了敏感配置信息,然后在应用启动前,app.js去读取该配置文件并修改app.config。但是上述方法实现起来出问题了,发现更新后的配置信息没有传入egg-mongoose插件中,egg-mongoose插件就已经启动了,以下是我的代码: ${baseDir}/app.js
class AppBootHook {
constructor(app) {
this.app = app;
}
configWillLoad() {
// 此时 config 文件已经被读取并合并,但是还并未生效
// 这是应用层修改配置的最后时机
// 注意:此函数只支持同步调用
const app = this.app;
let extendConfig = {};
const configFilePath = path.join(app.config.baseDir, 'config/extend-config.json');
if (fs.existsSync(configFilePath)) {
extendConfig = JSON.parse(fs.readFileSync(configFilePath, { encoding: 'utf-8' }));
}
Object.assign(app.config, extendConfig);
}
}
module.exports = AppBootHook;
我这种方式哪里出了问题吗,或者大佬们是怎么做的。