Почему dotenv return не определен, когда существует файл .env?

#node.js #undefined #dotenv

#node.js #не определено #dotenv

Вопрос:

У меня следующая проблема. файл «.env» не существует. Когда я распаковываю файл .env и пытаюсь прочитать из него параметры, я получаю «неопределенный». Когда я снова запускаю мое приложение, и файл .env существует, тогда он работает хорошо. Почему я получаю «неопределенный», когда файл находится там после распаковки?

 I have following function:

function envRead(){
require ('dotenv').config({path:'c:/ImageDISM/.env'});

const fi = process.env.FOLDER_IMAGES;
const fd = process.env.FOLDER_DATA;
const fn = process.env.FILE;
const dbn = process.env.DB;

return {
        fi,
        fd,
        fn,
        dbn
        };
}

module.exports = {envRead}

part of app.js
.
.
.
console.log(fileArgs[1]);

extract(`c:\ImageDISM\${fileArgs[1]}`, {dir:"c:\ImageDISM/"}, function (err) {
   // handle err
   console.log(err);
})

sleep(10000).then(() => {
    fs.access("c:/ImageDISM/.env", fs.constants.F_OK | fs.constants.W_OK, (err) => {
      if (err) {
        console.error(
          `"c:/ImageDISM/.env" ${err.code === 'ENOENT' ? 'does not exist' : 'is read-only'}`);
      } else {
        console.log("c:/ImageDISM/.env exists, and it is writable");
      }

          fi = resultenvr.fi;
          fd = resultenvr.fd;
          fn = resultenvr.fn;
          dbn = resultenvr.dbn;
         console.log(`image adresare: ${fi}`);
         console.log(`cilovy adresar: ${fd}`);
         console.log(`jmeno souboru: ${fn}`);
         console.log(`database: ${dbn}`);
         });
})
.
.
  

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

1. Я думаю, вам нужно дождаться завершения извлечения файла. Я также не вижу, где вы используете envRead функцию.

2. const resultenvr = envr.envRead(); fi = resultenvr.fi ; fd = resultenvr.fd; fn = resultenvr.fn; dbn = resultenvr.dbn; Как ждать?

3. Хорошо, я думаю, что у вас отсутствует эта строка во фрагменте, которым вы поделились. Вы пробовали переместить свой код all fs.access внутри обратного вызова extract?

4. Да, к сожалению, это не помогает. Когда файл существует перед запуском app.js это работает хорошо, но когда я «создаю» файл путем распаковки (извлечения), он не работает.