#node.js #dotenv
#node.js #dotenv
Вопрос:
Проверка, работает ли dotenv, и у меня есть следующее:
.env
DB_PORT = 8000;
server.js
import dotenv from 'dotenv';
dotenv.config();
....
const PORT = process.env.DB_PORT || 8001;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}.`);
});
Если я запускаю это, я получаю сообщение об ошибке (хотя оно показывает, что переменная загружается):
Ошибка: прослушивание сообщений: отказано в разрешении 8000;
Измените порт и то же самое:
Ошибка: прослушивание сообщений: отказано в разрешении 3000;
Если я закомментирую DB_PORT в файле .evn, он работает на 8001. Если я оставлю это прокомментированным и введу следующее в терминале VS Code:
export DB_PORT = 3600;
он работает на 3600.
Почему это происходит?
Комментарии:
1.
EACCESS
означает, что порт (8000) уже занят. Вы можете либо отключить то, что включено8000
, либо выбрать другой порт. Хотя, учитывая вашу переменную env, вы пытаетесь запустить сервер на том же порту, что и ваша БД?2. К сожалению, нет — происходит на любом порту, который я пробую.
Ответ №1:
Это точка с запятой в вашем .env
. Вы не завершаете строки в .env
файле точкой с запятой, просто стандартным разрывом строки.
Комментарии:
1. Удивительно — такое простое исправление. Спасибо.