нежелательное кэширование в файле fs.ReadFile nodejs

#node.js #fs

Вопрос:

У меня странная проблема в моем приложении NodeJS. Я использую

 function getFile(filename, cb){
    fs.readFile(filename, 'utf8', (err, data) => {
        if(err){
            throw err;
            return;
        }
        return cb(data);
    });
}
 

чтобы открыть html-файл, получите его содержимое и отправьте клиенту для разных модальных экранов. Однако первый открываемый html-файл, похоже, каким-то образом кэшируется. Я знаю, что в nodejs fs нет реального кэширования, поэтому я не уверен, откуда может возникнуть проблема. Я убедился, что на самом деле в функцию передаются правильные значения, но вывод всегда является первым открытым файлом.
Как я могу предотвратить это?

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

1. Как вы сказали, файл fs.ReadFile не выполняет никакого кэширования, и в показанной вами функции нет ничего плохого. Если вы вызовете его дважды с двумя разными путями к файлам, и эти два файла будут иметь разное содержимое, он вернет правильное, разное содержимое для каждого файла. Вот код, который вы можете запустить, чтобы доказать это pastebin.com/ZNXc14nX так что проблема должна быть в другом. Проверьте, как на самом деле используется результат этой функции.

2. Я подозреваю, что проблема здесь в том, как вы вызываете и используете результат getFile() функции. Я бы посоветовал вам показать вызывающий код там, где, по вашему мнению, вы видите проблему. Здесь вообще нет кэширования nodejs. Кроме того, ваша обработка ошибок для этой функции ошибочна, потому что вызывающий абонент никак не может уловить ваши ошибки. Вам также нужно сообщить об ошибке через обратный вызов.