Node.js : Выборка канал с Excel не работает

#javascript #node.js #fetch-api

#javascript #node.js #выборка-api

Вопрос:

Я пытаюсь прочитать содержимое Excel и записать его в другой Excel. Но, возможно, я что-то упускаю. вот соответствующая часть моего кода

       await fetch(fetchUrl)
        .then(
          res =>
          new Promise((resolve, reject) => {
            const dest = fs.createWriteStream("./text.xlsx");
            res.body.pipe(dest);
            res.body.on("end", () => resolve("it worked"));
            dest.on("error", reject);
          })
        )
        .then(x => console.log(x));
 

При попытке открыть файл я получаю следующее предупреждение

 Excel cannot open the file ’text.xlsx’ because the file format or file extension is not valid. Verify 
that the file has not been corrupted and that the file extension matches the format of the file.
 

Любая помощь относительно того, чего мне не хватает, будет действительно замечательной. Спасибо.

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

1. Какую fetch библиотеку вы используете в node?

2. Вы пытались открыть загруженный файл с помощью (шестнадцатеричного?) редактора (вместо excel), Чтобы посмотреть, содержит ли он ожидаемое содержимое? Попробуйте сначала загрузить более простой (только текстовый) файл. Он также поврежден?

3. этот github.com/node-fetch/node-fetch . Да, похоже, я что-то не задаю при вызове выборки. если я получу ссылку и получу к ней доступ через браузер, я смогу загрузить файл. Но если я делаю это через выборку, я получаю html-контент, который выглядит как страница входа

4. Ну, вы, похоже, не отправляете никаких заголовков, которые указывали бы на сервер, на который вы вошли.

5. Если вы можете просто загрузить файл в браузере, используйте devtools, перейдите на сетевую панель, найдите запрос и (в Chromium) вы можете «Скопировать как Node.js fetch» оператор, который вам понадобится для отправки эквивалентного запроса из вашей программы.