Чтение файла - fileName не определено [ошибка] - PullRequest
0 голосов
/ 22 сентября 2019

Я совершенно новичок в JavaScript, и у меня возникли проблемы с использованием функции fs.readFile ().

Мне необходимо прочитать файл и определить, нужно ли мне вызывать successFn (когда err boolean равен false) или errorFn (если err boolean равно true).

Когда I err равен falseТем не менее, я пытаюсь вызвать функцию «экстрактор» в качестве параметра - экстрактор разделяет прочитанные данные в каждом слове.

Мне необходимо вызвать fs.readFile, поэтому мне необходимо использовать параметры, и одним из параметров является fileName.

Грейдер собирается проверить мой код, используя свои собственные файлы, поэтому я не должен определять fileName, но меня просят определить его (я понимаю, почему меня просят сделать это, но ячувствую, что должен быть способ обойти эту проблему.)

Кроме того, синтаксис JavaScript не очень интуитивен, поэтому я могу допустить некоторые ошибки с синтаксисом, но вот мой код, и, пожалуйста, позвольте мнезнаете, как я могу решить мою проблему:

function readAndExtractWith(extractor) {
    fs.readFile(fileName, 'utf-8', (err, data) => {
        if (err) {
            errorFn(err);
        }
        else {
            data = extractor();
            successFn(data);
        }
        return extractor;
    });
}

1 Ответ

0 голосов
/ 22 сентября 2019

fileName не определено, потому что вы никогда не определяете его.Поскольку вы используете это в функции, вам нужно либо передать переменную в качестве аргумента, либо указать ее внутри функции, либо определить ее глобально.

var fileName = "stackoverflow.jpg";

// when executing the function pass the fileName parameter
readAndExtractWith(extractor, fileName);

function readAndExtractWith(extractor, fileName) {
    fs.readFile(fileName, 'utf-8', (err, data) => {
        if (err) {
            errorFn(err);
        }
        else {
            data = extractor();
            successFn(data);
        }
        return extractor;
    });
}
...