“ heroku本地网站”上的“错误:未定义配置属性”-Config / Heroku

时间:2019-12-27 16:16:52

标签: node.js heroku redis config dotenv

我正在尝试在本地设置现有的Heroku应用。为此,我从Github的仓库中git cloned开始使用该应用。然后,我为heroku添加了git remote

通常,服务器构建是通过Travis CI进行的,但是现在我想直接从heroku在本地运行应用。

heroku config可以很好地返回配置变量。

但是heroku local web返回错误

  

抛出新错误('配置属性“'+属性+'”未定义');

     

错误:未定义配置属性“ redis.url”

redis.js

import config from 'config';
const redis = new Redis(config.get('redis.url'), {
  keyPrefix: 'kw:',
});

config文件夹位于我的仓库的根目录中。

config / default.js

import dotenv from 'dotenv';

dotenv.config({ silent: true });

module.exports = {
  ...,
  redis: {
    url: process.env.REDIS_URL || process.env.REDISCLOUD_URL,
  },
  ...
}

package.js

中的相关脚本
    "start:server": "./node_modules/.bin/babel-node src/server.js",
    "start:worker": "./node_modules/.bin/babel-node src/worker/worker.js",
    "start": "./node_modules/.bin/nf start",

如果我运行npm run start:server,则会收到相同的错误。

如果我注释掉redis.url代码,则会遇到相同的错误,但会出现config中的另一个变量。

我想念什么?让我知道是否需要澄清。

2 个答案:

答案 0 :(得分:0)

我必须创建一个本地.env文件。

我很困惑,因为我读到您不需要Heroku的.env文件。但这似乎不是本地设置的情况。

答案 1 :(得分:0)

heroku config -s > .env

似乎会将这些文件复制到本地 .env。这不是默认设置似乎很奇怪,但确实如此。

完成后,使用 heroku local 运行您的应用。

我在这里找到了答案:https://www.debugcn.com/en/article/31153943.html