Загрузка переменных Dotenv, но ошибка подключения к БД при использовании переменной

#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. Удивительно — такое простое исправление. Спасибо.