Меню

Переменная окружения (environment variables)

01.07.2018 - Back-end, NodeJS

Environment Variables

Давайте улучшим этот код

const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send("Hello, world!");
});

app.get('/api/courses', (req, res) => {
    res.send(JSON.stringify([1,2,3]));
});

app.listen(3000, () => console.log("We listen"));

Сначала посмотрим на захардходженый номер порта. Если у вас на локальном компе сервер запустился на этом порте, то это не значит, что он запустится на этом порте на продакшене. Потому чтобы деплоим наше приложение на окружении хостинга и порт динамически назначается окружением хостинга. Мы не можем быть уверены, что порт 3000 будет свободен.

Итак, способ изменить это, это использовать переменную окружения. Обычно в окружении хостинга или приложении ноды у нас есть переменная окружения PORT. Переменная окружения, по простому это часть окружения в котором запущен процесс. Это значение устанавливается вне приложения. В нашем приложении нам нужно считать значение порта переменной окружения (environment variable). И способ сделать это, с помощью объекта process.

У нас есть глобальный объект под названием process, у него есть свойство env (сокращение от environment variable) и у него есть переменная PORT. Укажем что либо значение из переменной process.env.PORT или значение по умолчанию. Теперь укажем эту переменную в методе listen.

Мы можем установить переменную окружения. В UNIX подобных системах, мы можем сделать это с помощью команды export а затем имя переменной, в нашем случае PORT и затем установить его значение.

export PORT=5000

Nodemon

Вы заметили, что ранее какждый раз когда мы делали изменения, мы перезапускали сервер. Нам на помощь придем пакет под названием nodemon, это сокращение от node monitor.

npm i -g nodemon

Теперь при запуске нашего приложения мы будет писать не node, а nodemon.
При запуске мы увидим, что nodemon следит за всеми файлами в нашей директории.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *