Node-config не будет использовать переменные из custom-environment-variables.json в Heroku - PullRequest
0 голосов
/ 29 января 2019

Я использую модуль node-config для строк подключения mongo и ключей jwt.

Например:

if(!config.get('jwtPrivateKey')){
    throw new Error('FATAL ERROR: jwtPrivateKey is not defined');

Мой custom-environment-variables.json файл выглядит так:

{
    "jwtPrivateKey": "video-app_jwtPrivateKey",
    "db": "video-app_db"
}

default.json

{
    "db": "default db",
    "jwtPrivateKey": "default key"
}

production.json

{
    "db": "production db",
    "jwtPrivateKey": "production key"
}

Короче говоря - хотя переменные окружения установлены в heroku, node-config не смотрит назначения, установленные в custom-environment-variables.json.Я могу изменить NODE_ENV и получить жестко закодированные значения соответствующего файла json, но переменные окружения никогда не используются, что, кажется, противоречит документам

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

У меня была такая же проблема.Потребовалось удалить дефис из ключей для heroku для чтения из пользовательских переменных среды.

Итак custom-environment-variables.json:

{
    "jwtPrivateKey": "video-app_jwtPrivateKey",
    "db": "video-app_db"
}

Становится:

{
    "jwtPrivateKey": "videoapp_jwtPrivateKey",
    "db": "videoapp_db"
}

Heroku docs :

Политики конфигурации переменных

  • Ключи конфигурации переменных должны использовать только буквенно-цифровые символы и символ подчеркивания (_), чтобы обеспечить их доступность для всех языков программирования. Config var keys не должен содержать дефис.
  • Config var data (комбинация всех ключей и значений) не может превышать 32 КБ для каждого приложения.
  • Config var keysне должен начинаться с двойного подчеркивания (__).
  • Ключ config var не должен начинаться с HEROKU_, если он не установлен самой платформой Heroku.
0 голосов
/ 29 января 2019

Вы можете настроить vars таким образом в Heroku

...