требовать process.env в node.js ?

#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 «принять ответ, когда он решит их проблему».