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

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

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

Ответ 1

Вы можете проверить среду, проверив app.settings.env (это будет работать в Express), или вы можете сделать это более прямым способом, проверив process.env.NODE_ENV (это среда, найденная в этой переменной, или " development 'по умолчанию < это также работает в других библиотеках, таких как Socket.IO и т.д.).

Ответ 2

app.get('env') также вернет среду.

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

Ответ 3

Я хотел бы обратиться к прямому пути передачи переменных NODE_ENV на ваш node script, чтобы получить к ним доступ в 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());
}

Ответ 4

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

Ответ 5

не может получить доступ к серверу nodejs. может обнаруживать node env из выражения, используя app.setting.env

  • var app = express();
  • app.setting.env отображает механизм шаблона.
  • проверьте в браузере.

Ответ 6

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

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

Хорошо, что такой подход не является специфическим для Экспресса как такового, но на самом деле является общепринятой практикой в ​​более широкой экосистеме Node.js.

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

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