JavaScript

Переменные окружения Node JS

const { PORT = 3000, BASE_PATH } = process.env;

Что это такое "PORT = 3000, BASE_PATH"
и для чего нужен process.env;
прочитал в интернете, так и не понял
Означает, что port = 3000, если в .env нет такой строки, чтобы сервер запускался в любом случае.
Деструктуризация для более краткой записи, вот так это выглядит без нее
 const PORT = process.env.PORT || 3000
const BASE_PATH = process.env.BASE_PATH
В переменные окружения кладут приватные и секретные данные, которые не нужно показывать всем подряд. Например, чтобы это не попадало в репозиторий на гитхабе, без этого не сможет работать тот, кто скачал твой код. Там складывают всякие домены, приватные ключи доступа к апи, пароль от базы данных и ее адрес и т.д.
Создаешь файл .env в корне проекта и туда вписываешь
 PORT=5000
BASE_PATH='catalog'
Ayhan Ucar
Ayhan Ucar
1 725
Лучший ответ
process.env - это глобальная переменная в Node.js, которая предоставляет доступ к переменным окружения операционной системы. Это означает, что вы можете установить переменные окружения в операционной системе, а затем получить доступ к ним в своем приложении Node.js через process.env.

В вашем примере кода const { PORT = 3000, BASE_PATH } = process.env; используется деструктуризация объекта для извлечения значений переменных окружения PORT и BASE_PATH из process.env. Если переменная окружения PORT не установлена, ее значение по умолчанию будет равно 3000. Значение переменной окружения BASE_PATH будет равно значению, установленному в операционной системе, или undefined, если оно не установлено.

Переменные окружения используются для настройки приложения для разных сред, таких как разработка, тестирование и производство. Они позволяют приложению вести себя по-разному в зависимости от среды, в которой оно запущено. Например, вы можете использовать разные значения для порта, на котором запускается ваше приложение, или базового пути для маршрутизации в зависимости от того, запущено ли приложение в среде разработки или производства.
Сергей Денцов
Сергей Денцов
25 860
Ахат Исемберлиев BASE_PATH я могу назвать по другому это? или это идёт как константа
Ахат Исемберлиев
 const { PORT = 3000, BASE_PATH } = process.env; 

const mainPageMarkup = `




`;
Как используется это переменное окружение здесь? "action="${BASE_PATH}/submit""
Ахат Исемберлиев можно пример? как оно обрабатывается или такого типа
Ахат Исемберлиев Если не в падлу опишите пажалуйста полностью код начиная с 3ей строки
Ахат Исемберлиев а где можно найти эту среду на пк? rocess.env; - это же путь до переменной окружения, тоесть сначала process, потом env
Ахат Исемберлиев а тоесть ещё что понял "

в process.env; я могу хранить что угодно, важное для меня в данном случае, это
PORT = 3000 и BASE_PATH = ''
но так и не допираю что такое BASE_PATH
и за что оно отвечает(
 const { PORT = 3000, BASE_PATH = '' } = process.env;
Обычная деструктуризация. По другому это можно изобразить так:
 const env = { 
PORT: 3330,
BASE_PATH: "some/path"
}

const { PORT = 3000, BASE_PATH } = env

// или с переименованием
const { PORT: MY_PORT = 3000, BASE_PATH: MY_PATH } = env
Ахат Исемберлиев А для чего нужна деструктуризация?
Ахат Исемберлиев Тоесть это
 const env = {  
PORT: 3330,
BASE_PATH: "some/path"
}
деструктурезация, что бы постоянно не писать
var PORT = process.env.PORT
var BASE_PATH = process.env.BASE_PATH

так понял?