egg icon indicating copy to clipboard operation
egg copied to clipboard

如何让应用的configWillLoad在egg-sequelize建立连接之前执行

Open brucewar opened this issue 4 years ago • 5 comments

相关环境信息

  • Egg 版本:2.27.0 需求是这样的,在sequelize初始化之前,修改配置文件里的加密密码 我的应用app.js是这样的
class AppBoot{
  constructor(app){
    this.app = app;
    this.ctx = app.createAnonymousContext();
  }
  configWillLoad(){
    const {
      sequelize,
      redis
    } = this.app.config;
    const base64Reg = /^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/;
    const mysqlPwd = sequelize.password;
    if(mysqlPwd && base64Reg.test(mysqlPwd)) sequelize.password = this.ctx.helper.decryptPwd(mysqlPwd);
    if(redis.client && redis.client.password && base64Reg.test(redis.client.password)){
      const redisPwd = redis.client.password;
      redis.client.password = this.ctx.helper.decryptPwd(redisPwd);
    }
  }
}

brucewar avatar Nov 20 '20 09:11 brucewar

如果是想异步获取远程配置的话,参考下 https://github.com/atian25/egg-remote-config

atian25 avatar Nov 20 '20 09:11 atian25

如果是想异步获取远程配置的话,参考下 https://github.com/atian25/egg-remote-config

我这里修改配置是同步的,但是貌似configWillLoad在egg-sequelize的beforeStart之后执行了

brucewar avatar Nov 23 '20 01:11 brucewar

如果是想异步获取远程配置的话,参考下 https://github.com/atian25/egg-remote-config

image egg-sequelize: V5.2.1。egg:V2.26.0。 egg-sequelize在egg-remote-config前执行了

Imfdj avatar Nov 24 '20 08:11 Imfdj

n

有解决吗?试了下remoteConfig 和 AppBootHook configWillLoad 都是在sequelize初始化后执行的

wood-liu92 avatar Feb 08 '22 07:02 wood-liu92

n

有解决吗?试了下remoteConfig 和 AppBootHook configWillLoad 都是在sequelize初始化后执行的

我的解决方案是复制一份egg-sequelize插件,移除里面的agent.js image image

brucewar avatar Feb 09 '22 02:02 brucewar