Как вы обнаруживаете среду в экспрессе.js app?


Как вы определяете, в какой среде работает приложение expressJS? (разработка, испытание, производство?). Там ничего нет process.env с указанием условий...

Я знаю, что вы можете объявлять переменные в файле конфигурации в каждой среде, но это не помогает, если вы динамически загружаете модули...

6 51

6 ответов:

вы можете либо проверить окружающую среду, проверив app.settings.env (Это будет работать в Express), или вы можете сделать это более прямым способом, проверив process.env.NODE_ENV (среда находится в этой переменной или "разработка" по умолчанию

приложение.get ('env') также вернет среду.

if ( app.get('env') === 'development' ) {
    app.use(express.errorHandler());
}

Я хотел бы обратиться к простому способу передачи переменных NODE_ENV в ваш скрипт узла, чтобы получить к ним доступ в process.env

  "scripts": {
    "start": "./node_modules/.bin/cross-env NODE_ENV=development ./node_modules/.bin/nodemon server.js",
    "debug": "./node_modules/.bin/cross-env NODE_ENV=development ./node_modules/.bin/nodemon --debug server.js",
    "test": "./node_modules/.bin/cross-env NODE_ENV=test ./node_modules/.bin/babel-tape-runner test/test-*.js"
  },

может использоваться как

if ( app.get('env') === 'development' ) {
    app.use(express.errorHandler());
}

может определить, в какой среде вы находитесь, проверяя app.settings.env.

не удается получить доступ к серверу nodejs. можно обнаружить узел env от express с помощью приложения.установочный.env

  1. var app = express();
  2. приложение.установочный.ОКР оказывает шаблонизатор.
  3. проверьте в браузере.

есть много полезных рекомендаций в других ответов. Я обычно делаю это так:

const environment = process.env.NODE_ENV || 'development';

хорошо, что такой подход не является специфическим для выражения как такового, но на самом деле является принятой практикой в более широком узле.экосистемы в JS.

кроме того, я реализовал многоразовый модуль, который позволяет автоматически определять среду, анализируя как аргументы CLI, так и переменную NODE_ENV. Это может быть полезно на вашей машине разработки, потому что вы можете легко изменить окружающую среду путем передачи аргументов командной строки для вас узел.js программа, как это:$ node app.js --prod.

пожалуйста, смотрите более подробную информацию и варианты использования на detect-environmentстранице.