#javascript #node.js #express
#javascript #node.js #выразить
Вопрос:
У меня есть .env
файл, и он имеет
ABC='abc'
и когда я делаю process.env.ABC
в своем app.js Я могу получить abc
ценность. Как мне потребовать, чтобы он использовался в файлах моих моделей? Я делаю то же самое process.env.ABC
в своем файле models, он не определен. Я предполагаю, что я должен требовать этого?
Комментарии:
1. Вы должны использовать что-то вроде пакета dotenv для загрузки переменной env из файла .env. Используете ли вы что-нибудь из этого? Вам нужно будет установить dotenv в npm, а затем потребовать того же, чтобы загрузить переменную среды везде, где вы этого хотите.
Ответ №1:
Вы можете использовать dotenv для require
.env
файла и сохранять в переменной a при запуске своего приложения. Получив это, вы можете либо передать его в качестве аргумента метода, либо обернуть свои модели в module.exports = (env) => { return myModel; }
В express это было бы что-то вроде
const env = require('dotenv').config({path:
'/custom/path/to/your/env'});
app.use((req, res, next) => {
app.env = env;
});
Теперь вы можете получить доступ env
, перейдя req
к моделям и get
env
используя req.app.get('env')
Комментарии:
1. какая польза от этой вещи .env? обычно я просто использую . json или .js, как config.json или лучше config.js и просто требуйте его, как var config = require(‘config’) . Какой бы ключ;
2. Все они служат одной и той же цели, просто с другим подходом. Обычно я использую cfg/index.js который переопределяется переменной среды, установленной при запуске приложения. Только сохранить cfg/index.js или вариант разработки в SCM.
3. SCM означает что?
4. управление системой управления версиями. Варианты — git, mercurial, svn. Кроме того, если мой ответ решил вашу проблему, не забудьте принять его.
5. @artziff — Если вы можете прочитать выше, SCM вообще не был связан с исходным вопросом. А когда это не так, парень, отвечающий на вопрос, имеет полное право попросить OP «принять ответ, когда он решит их проблему».