Могу ли я отправлять файлы XLS / XLSX с помощью Express res.sendFile()?

#express #xlsx #sendfile

#экспресс #xlsx #отправить файл

Вопрос:

Я разместил слишком много вопросов по этому поводу, но я продолжаю упираться в стену, поэтому продолжаю спрашивать. Можете ли вы отправить файл XLS или XLSX с помощью Express’ res.sendFile() ?

Вот код, который я использую:

 res.sendFile(
    path.join(__dirname, '../testing/'),
    `${fileName}`,
    (err, data) => {
      if (err) throw err;
    }
  );
  

Даже при том, что fileName имеет значение filename.xlsx , он никогда не использует файл XLSX; он всегда имеет значение по умолчанию index.html . Я всегда получаю следующую ошибку:

 [Error: ENOENT: no such file or directory, stat '/Users/username/Documents/app/testing/index.html']
  

Ответ №1:

sendFile никто не знает и не заботится о том, что вы пытаетесь отправить файл XLS / XLSX. Он знает только, что вы пытаетесь отправить файл.

Итак, да, вы можете, но вы должны вызвать sendFile правильно. 😜

Вы указали имя файла в качестве отдельного аргумента (который будет проанализирован как options аргумент), вместо того, чтобы помещать его в path аргумент.

 res.sendFile(
    path.join(__dirname, '..', 'testing', fileName),
    (err, data) => {
      if (err) throw err;
    }
  );
  

Обратите внимание, что я взял на себя смелость удалить явно избыточный литерал шаблона выражения. Я также разделил '../testing/' для вас: вы должны поместить отдельные компоненты в path.join как можно больше, для наглядности.