#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 это работает хорошо, но когда я «создаю» файл путем распаковки (извлечения), он не работает.