Как вы обнаруживаете среду в приложении express.js? - PullRequest
51 голосов
/ 09 декабря 2011

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

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

Ответы [ 6 ]

65 голосов
/ 09 декабря 2011

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

23 голосов
/ 08 апреля 2014

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

if ( app.get('env') === 'development' ) {
    app.use(express.errorHandler());
}
10 голосов
/ 31 августа 2016

Я хотел бы обратиться к простому способу передачи переменных 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());
}
2 голосов
/ 09 декабря 2011

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

0 голосов
/ 27 сентября 2017

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

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

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

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

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

0 голосов
/ 13 июля 2017

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

  1. var app = express();
  2. app.setting.env рендерит в движок шаблонов.
  3. проверка из браузера.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...