Для использования в средах express.js. Какие-либо предложения?
javascript
node.js
macos
environment-variables
Марк Гия Бао Нгуен
источник
источник
Ответы:
Перед запуском приложения вы можете сделать это в консоли,
Или, если вы находитесь в Windows, вы можете попробовать это:
или вы можете запустить свое приложение так:
Вы также можете установить его в своем файле JS:
Но я не предлагаю делать это в вашем исполняемом файле, так как нелегко открыть VIM на вашем сервере и изменить его на рабочий. Вы можете создать файл config.json в своем каталоге, и каждый раз, когда ваше приложение запускается, оно читает из него и устанавливает конфигурацию.
источник
process.env.NODE_ENV
надежно из самого приложения. Лучше всего правильно установить переменную окружения, как это описано ниже.NODE_ENV
явно каждый раз, когда вы запускаете приложение, как во втором примере (NODE_ENV=production node app.js
). Таким образом, вы потенциально спасете себя от будущих затяжек, если вы забудетеNODE_ENV
вернуть себе местный уровеньdevelopment
.cross-env NODE_ENV=production
работает на Windows и Linux / Mac.NODE_ENV=production forever app.js
должен работать.в package.json:
затем запустите в терминале:
источник
NODE_ENV=production
в package.json не имеет особого смысла. Запускnpm start
в разработке запустит его в производство. Вы можете написать свой код так, как будто он всегда производственный, поскольку вы всегда выполняете его таким образом. Единственная причина, по которой я это делаю, - заставить другие модули (например, Express) работать в производственном режиме. Зачем вообще использовать переменные среды, если они никогда не меняются?.env
Здесь еще никто не упоминается ? Создайте.env
файл в корне вашего приложения, затемrequire('dotenv').config()
и прочитайте значения. Легко меняется, легко читается, кроссплатформенный.https://www.npmjs.com/package/dotenv
источник
"mode": "production"
в.env
файле сработала.export NODE_ENV=production
плохое решение, оно исчезает после перезагрузки.если вы не хотите больше беспокоиться об этой переменной - добавьте ее в этот файл:
не используйте синтаксис экспорта, просто напишите (в новой строке, если какой-то контент уже есть):
работает после перезагрузки. Вам больше не нужно будет никуда вводить команду export NODE_ENV = production и просто использовать узел с чем угодно - навсегда, pm2 ...
За героку:
который на самом деле по умолчанию.
источник
NODE_ENV=production gulp bundle-production-app
для связывания готовый сценарий, на сервере NODE_ENV находится в среде сервера, а на машине разработчика его нет. На некоторых машинах это кошмар, если он не установлен, и вы ожидаете, что он будет установлен всегда . В некоторых вы ожидаете, что его не будет, поэтому не добавляйте. В любом случае, делая пользовательский интерфейс, я ясно даю понять, находится ли он в режиме разработки, чтобы у вас никогда не возникало вопросов, включен он или нет. Если NODE_ENV - это! == производство, то, по вашему мнению, вы находитесь в другом режиме, так что никакого кошмара нет. Все ясно, все хорошо./etc/environment
и запуститьexport NODE_ENV=production
?Чтобы не беспокоиться о том, выполняете ли вы свои сценарии в Windows, Mac или Linux, установите пакет cross-env . Тогда вы можете легко использовать свои скрипты, например:
Массивные реквизиты для разработчиков этого пакета.
источник
источник
NODE_ENV=production
теперь по умолчанию в Heroku развертывается node.js.Для Windows Powershell используйте эту команду
источник
На OSX я бы порекомендовал добавить
export NODE_ENV=development
в ваш~/.bash_profile
и / или~/.bashrc
и / или~/.profile
.Лично я добавляю эту запись в мой
~/.bashrc
и затем получаю~/.bash_profile
~/.profile
импорт содержимого этого файла, чтобы он был одинаковым для всех сред.После внесения этих изменений обязательно перезагрузите терминал, чтобы выбрать настройки.
источник
Если вы находитесь на окнах. Откройте ваш cmd в правой папке, затем сначала
нажмите Enter, тогда вы можете начать свой узел с
это начнется с вашей настройки env
источник
Если вы используете webpack в своем приложении, вы можете просто установить его там, используя
DefinePlugin
...Итак, в вашем
plugin
разделе установите NODE_ENV наproduction
:источник
Чтобы иметь несколько сред, вам нужны все ответы раньше (параметр NODE_ENV и его экспорт), но я использую очень простой подход без необходимости что-либо устанавливать. В ваш package.json просто поместите скрипт для каждой нужной вам среды, например:
Затем, чтобы запустить приложение вместо
npm start
использованияnpm run script-prod
.В коде вы можете получить доступ к текущей среде с
process.env.NODE_ENV
.Вуаля.
источник
Windows CMD ->
set NODE_ENV=production
Windows Powershell ->
$env:NODE_ENV="production"
MAC ->
export NODE_ENV=production
источник
У Даниэля есть фантастический ответ, который является лучшим подходом для правильного процесса развертывания (установить и забыть).
Для тех, кто использует экспресс. Вы можете использовать Grunt-Express-сервер, который также является фантастическим. https://www.npmjs.org/package/grunt-express-server
источник
Это может быть шанс, что вы сделали два экземпляра объекта sequelize
например: var con1 = new Sequelize (); var con2 = new Sequelize ();
чем то же самое произойдет ошибка
источник