Node-config не будет использовать переменные из custom-environment-variables.json в Heroku

Я использую модуль 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, но переменные окружения никогда не используются, что, кажется, противоречит документам

1 ответ

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

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

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

становится:

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

Heroku документы:

Конфиг вар политики

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

Вы можете настроить VAR по этому пути в Heroku

Итак, у меня была та же проблема: я развернул свое приложение, установил переменные среды в Heroku, но ничего не работало (в отличие от моей локальной машины, где все было хорошо).
Похоже, проблема заключалась в том, что я случайно добавил всеnode_modulesпапку в git. Это произошло потому, что я создал.gitignore файл после первоначальной фиксации (если я правильно понял).

То, что я сделал, у меня сработало: я удалил node_modules из git и зафиксировал / отправил изменения в Heroku:

git rm -rf node_modules

затем зафиксировать и нажать.

Это было сообщение об ошибке, которое я получил:

Ошибка: /app/node_modules/bcrypt/lib/binding/bcrypt_lib.node: недопустимый заголовок ELF

Я потратил два дня, пытаясь понять это.
Надеюсь, это поможет.

Другие вопросы по тегам