#node.js #express #environment-variables
Вопрос:
Я пытаюсь вернуть свои переменные env в экспресс-файл, но я получаю null
.
Это моя структура папок
--backend
--.env
--src
--index.ts
--frontend
//.env
TEST: mytest
//index.ts
app.get("/api/test", (request, response) => {
response.send({test: [process.env.TEST]})
})
Ответ №1:
Установить https://www.npmjs.com/package/dotenv
Использование Как можно раньше в вашем приложении, требуйте и настраивайте dotenv.
require('dotenv').config()
// server.js
console.log(`Your port is ${process.env.PORT}`); // undefined
const dotenv = require('dotenv');
dotenv.config();
console.log(`Your port is ${process.env.PORT}`); // 8626
так что в вашем случае
/src/
index.ts
.env
Вы также можете проверить наличие ошибок
const result = dotenv.config()
if (result.error) {
throw result.error
}
console.log(result.parsed)
Комментарии:
1. все еще не определено. возможно, файл .env находится не в том месте? извините, я понятия не имею
2. переместите .env внутрь src, он загрузится автоматически
Ответ №2:
- В том
.env
, что должно быть:
TEST=mytest
- (Если приведенное выше изменение не работает) Поскольку файл
.env
находится не в той папке,index.ts
в которой находится файл, вам может потребоваться указать путь к.env
файлу.
В начале вашего index.ts
файла :
require('dotenv').config({path : path.resolve(__dirname, '../.env')});
Ответ №3:
Исправил это, сделав две вещи:
Сначала создается .env
файл с помощью терминала. (см. справку)
Затем я переместил .env
файл в root
папку своего бэкенда (удалив его из src
)