Почему выборка продолжает отключаться при загрузке файла, а загрузка вручную в браузере — нет?

#javascript #node.js #fetch

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

Вопрос:

Я использую выборку для загрузки файла, и при использовании выборки я сталкиваюсь с проблемой, которая не возникает, когда я загружаю файл вручную в браузере. Может быть, я что-то здесь упускаю?

код выглядит следующим образом:

 fetch(link).then(res => {
  let writeStream = fs.createWriteStream(destinationPath)
  writeStream.on('close', callback);

  res.body.pipe(writeStream)
})
  

Много раз поток просто зависал, и поэтому я добавил settimeout для повторной загрузки. иногда требуется много попыток, чтобы завершить его. Этого не происходит при использовании браузера (если это происходит очень редко). Есть ли какие-либо настройки, которые я должен настроить, чтобы выборка работала здесь должным образом? или мой код неверен?

Пример файла для загрузки: ссылка

ОБНОВЛЕНИЕ: Забыл упомянуть, что я использую node-fetch на сервере.

Спасибо!

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

1. Если это node.js , что такое fetch ? Если это клиентский скрипт, что это fs такое?

2. Я использую node-fetch пакет на сервере

Ответ №1:

Если загрузка работает в строке браузера, это не значит, что она также работает с выборкой. Их сервер должен разрешать перекрестные исходные запросы, если вы используете выборку.

При использовании выборки вы можете проверить статус ответа с помощью объекта response.

Имейте в виду, что fetch это не работает в node и fs не работает в браузере.

Проверьте статус выборки

 fetch("https://bulkdata.uspto.gov/data/trademark/dailyxml/applications/apc190416.zip")
.then(res => {
      console.log("download status:")
      console.log(res.ok)
      console.log(res.status)
      return res
    })
  

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

1. Я не верю, что проблема заключается в перекрестных запросах происхождения. Файл загружается когда-нибудь. Проблема в том, что иногда часть загружается, а затем зависает перед завершением. Также я забыл упомянуть, что я использую пакет node-fetch