Для чего используется параметр ошибки в обратном вызове Multer Filename?

#node.js #file #express #error-handling #multer

#node.js #файл #экспресс #обработка ошибок #multer

Вопрос:

Я использую Multer для получения файлов из запросов для моего экспресс-API, и мне интересно, какова цель значения ошибки в обратном вызове имени файла. Вот мой код:

 const multerFile = multer({
  storage: multer.diskStorage({
    destination: "uploads/",
    filename: (req, file, callback) => {
      callback(ERROR HERE WHAT IS THIS FOR?, "fileNameHere`); 
    },
  }),
});
 

Ответ №1:

В Node способ, которым обычно структурируются возможные асинхронные обратные вызовы, заключается в том, что первый аргумент является ошибкой, ИЛИ второй аргумент является значением успеха. Например, вы очень часто будете видеть подобные шаблоны:

 callSomeAPI((error, result) => {
  if (error) {
    // There was an error, do something with it
    handleError(error);
  } else {
    // Success
    handleResults(result);
  }
});
 

Этот filename обратный вызов выполняет то же самое. Если вы реализуете какую-либо пользовательскую логику и хотите указать, что процесс завершился неудачно, передайте первый аргумент, содержащий причину, в обратный вызов:

 callback('Desired filename contains invalid characters');
 

В противном случае оставьте первый аргумент нулевым:

 callback(null, 'fileNameHere');