При запуске приложения Node, как Node узнает, в какой среде оно работает?
Я понимаю, что среда определяется внутри process.env.NODE_ENV
, но как и где определяется эта переменная?
3 ответа
Существует несколько способов установки переменных узлов, но наиболее распространенные
< Сильный > 1 . чтобы запустить консоль с включенным следующим образом:
> NODE_ENV=prod node start.js
process.env.NODE_ENV // prod
Но бывают случаи, когда вы можете явно установить env до начала файла:
process.env.NODE_ENV = 'test';
require('config') // then it will return me the test.json config
// I use this technique mostly for unit tests
< Сильный > 2 . экспортировать envars в package.json
"scripts": {
"start": "export NODE_ENV=dev && node server.js", // for linux
"start": "set NODE_ENV=dev && node server", // for windows
"test": "mocha"
},
Когда вы запускаете npm start
, скрипт запускает сервер в режиме dev
< Сильный > 3 . используйте пакет npm в качестве dotenv
и настройте файл .env
Плагины для управления env как dotenv
наиболее часто используемые. Где вы можете создать .env
файлы с необходимыми переменными ENV
DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3
Переменная не определена, если вы ее не определите.
Я полагаю, вы используете обычный компьютер с Windows.
На Windows вы можете просто сделать это. создайте случайный индексный файл и поместите его в него: console.log(process.env.NODE_ENV)
и затем запустите его с: set NODE_ENV=productionEnvironment && node index
Обычно они задаются в командах package.json
или поступают из файла .env
.
Например, NODE_ENV=development
из файла .env
можно открыть в process.env.NODE_ENV
.
Для загрузки .env
файлов в process.env
ознакомьтесь с dotenv.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.