Синтаксис переменных среды Heroku в config.yaml для node.js?

Я пробовал использовать:

db:
  uri: process.env.MONGOLAB_URI

но это, похоже, не работает. (EDIT: на самом деле это просто возвращает строку "process.env.MONGOLAB_URI"). Я также пробовал:

<%= ENV['MONGOLAB_URI'] %>

но я видел это в статье о yaml в приложении ruby ​​(сейчас не могу найти ссылку).

Какой правильный синтаксис?


person Miles    schedule 03.10.2012    source источник


Ответы (2)


db: uri: #{process.env.MONGOLAB_URI}

кредиты: https://github.com/vngrs/konfig

person kaushik94    schedule 18.11.2015

Я считаю, что пример config.yaml предназначен для определенного драйвера Ruby. Для Node.js вы хотите передать URI (найденный в process.env.MONGOLAB_URI) в драйвер Node по вашему выбору, используя любой метод конфигурации, который вы считаете наиболее удобным.

Если вы хотите использовать, например, собственный драйвер Node MongoDB, вы можете сделать что-то вроде этого:

var mongodb = require('mongodb');
mongodb.Db.connect(process.env.MONGOLAB_URI, function (err, db) {
    // Do something cool with the db
});
person jared    schedule 03.10.2012
comment
Правильно, и это работает при размещении process.env.MONGOLAB_URI в коде node.js, но какой синтаксис следует использовать, чтобы поместить его в config.yaml? - person Miles; 04.10.2012
comment
Если вы имеете в виду метод настройки файла YAML, описанный в справке надстройки MongoLab, тогда, как я уже упоминал, это для конкретного драйвера Ruby и не относится к Node.js. Проблема в том, что вы хотите внедрить конфигурацию из кода и, возможно, разветвить используемую среду? - person jared; 04.10.2012
comment
Я думаю, я не ясно. Я понимаю, что один из синтаксисов, которые я использовал в вопросе, предназначен для ruby, а не для node.js, поэтому я сказал это в вопросе. Я также понимаю, что могу получить доступ к переменной среды mongolab_uri в коде javascript, используя process.env.MONGOLAB_URI в коде node.js. Проблема в том, что при использовании файла yaml для конфигурации приложения вы не можете использовать process.env.MONGOLAB_UI сам по себе, потому что yaml просто вернет эту строку и не будет оценивать строку как код javascript. Каков синтаксис, чтобы сообщить yaml, что он должен оценивать строку как javascript? - person Miles; 04.10.2012
comment
Я считаю, что это зависит от используемого вами синтаксического анализатора YAML. Вы используете js-yaml? Я не вижу очевидного решения после беглого просмотра README.md или посещения их онлайн. демо. Сделав шаг назад, YAML не является обычным способом обработки конфигурации в Node. Вы можете попробовать один из методов , которые чаще всего используются с Node. . Я сам использую nconf. - person jared; 04.10.2012
comment
nconf выглядит очень мило. То, как он автоматически обрабатывает и включает переменные среды, может решить мою проблему. Я проверю это. Спасибо! И извините за путаницу - person Miles; 06.10.2012