режим работы dotenv в nodejs не работает

#node.js #reactjs #dotenv

Вопрос:

Привет,я хочу переключить свое приложение в рабочий режим, и я использую код Windows и Visual Studio, я использую expressjs в бэкэнде и создаю-реагирую-приложение в интерфейсе.Ниже приведено дерево данных введите описание изображения здесь

Ниже приведен файл package.json и файл, из которого происходит dotenv:

введите описание изображения здесь

введите описание изображения здесь И я хочу перевести его в рабочий режим в бэкэнде,ниже приведено мое бэкэнд-дерево данных:

введите описание изображения здесь

Я добавляю скрипт в server.js:

введите описание изображения здесь

И я также хочу переодеться NODE_ENV=development NODE_ENV=production в .env файл in. Наконец я ввел npm start , как показано ниже: введите описание изображения здесь

И я вхожу в localhost:5000,но потерпел неудачу.Кто-нибудь может дать совет?

Комментарии:

1. где dotenv вступает в игру?

2. Вам нужно, чтобы в вашем server.js и загрузите конфигурацию: require("dotenv").config(); (по умолчанию вызов конфигурации загрузит конфигурацию .env в корневой каталог; если вы хотите загрузить определенный путь, см. Документацию по методу конфигурации dotenv ). Кроме того, вы должны разделить свои файлы env. Один для разработки и один для производства, аналогично рекомендации CRA .

3. @MattCarlotta OP уже импортировал его (показано на 3-м изображении)

4. Я добавляю файл, в котором dotenv вступает в игру. Даже я пытаюсь создать новый .env.development файл и установить NODE_ENV=production ,он все равно не работает.

5. Можете ли вы попробовать const result = dotenv.config(); и console.log(result.error) проверить наличие ошибок?

Ответ №1:

Возможно, вы можете попробовать указать путь к .env файлу явно (https://github.com/motdotla/dotenv#path).
Что-то вроде .config({ path: path.resolve(__dirname, "../.env") })

Комментарии:

1. Привет @justpen,спасибо. Я меняю dotenv.config() на dotenv.config({ путь: ‘./.env’ }),но все еще не работает.

Ответ №2:

Просто удалите app.get('/', (req, res) => { res.send('API is running') }) после app.use(express.json())