首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RedisDB与快递网关。如何从.ENV读取DB凭据?

使用RedisDB与快递网关。如何从.ENV读取DB凭据?
EN

Stack Overflow用户
提问于 2020-08-28 13:09:34
回答 2查看 420关注 0票数 0

我正在使用Redis数据库来使用Heroku上的Express-Gateway。我想知道如何将Redis凭据设置为唯一的URL-param,而不是使用分隔的vars。

现在,快速网关从文件system.config.yml读取凭据,其中凭据结构是

代码语言:javascript
复制
# Core
db:
  redis:
    host: [host]
    port: [port]
    namespace: [namespace]
    password: [password]

不幸的是,Heroku上的Redis自动将凭据设置为.ENV变量,形式为URL:

代码语言:javascript
复制
REDIS_URL = "redis://h:[psw]@[host]:[port]"

如何使快递网关从.ENV而不是system.config.yml读取凭据?或者,如何使system.config.yml从.ENV读取整个URL?

甚至最糟糕的是,凭据不是永久性的,并且定期更改而不发出警报。那么,我怎样才能让快速网关连接到Heroku上的Redis呢?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-31 13:28:24

我用这种方法解决了问题:在启动网关之前拆分vars,并设置Env。

代码语言:javascript
复制
    /* ==============
    server.js
    ================*/
    const gateway = require('express-gateway');
    const redis = require('redis')
    const session = require('express-session')
    let RedisStore = require('connect-redis')(session)
    require('dotenv').config();
    
    
      var redis_Url = process.env.REDIS_URL; // auto-stetted by the Redis Heroku Plugin
    
      // example: redis://h:p81efd4c7e0ad310d7da303b7bd348d3d0bd9fcebc7aae61c9ba7c94a95a1290d@ec2-54-247-152-80.eu-west-1.compute.amazonaws.com:12799

      var groups = /^redis:\/\/(.+?)\:(.+?)\@(.+?)\:(.+)$/gi.exec(redis_Url); 
      
      process.env.NM   = groups[1];
      process.env.PASW = groups[2];  
      process.env.HOST = groups[3];
      process.env.R_PORT = groups[4]; // !!! don't use PORT as Env var name!!!

    
      // Run the gateway
      gateway()
      .load(path.join(__dirname, 'config'))
      .run();

代码语言:javascript
复制
     #==============
     # system.config.yml
     #================
        
        # Core
        db:
          redis: 
            host: ${HOST} 
            port: ${R_PORT} 
            namespace: EG
            password: ${PASW}
票数 0
EN

Stack Overflow用户

发布于 2020-08-28 13:43:27

快速网关的配置文件支持环境变量 -检查出来,你应该是好的去!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63634432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档