0

我正在使用 Node-Fetch 向 Web api 发出获取请求。它返回八位字节流响应以保存为本地文件。

我尝试使用 downloadjs (download()) 和 download.js (downloadBlob()),但它们都不起作用。

downloadBlob() 返回“createObjectURL is not a function”错误,并且 download() 返回“window is not defined at object”。错误。

电话在下面

let res = await fetch(apiURL, {
    method: 'GET',
    headers: {
      'Content-Type': 'application/json',
    }
  })

我想我在这里完全迷失了。我应该怎么做才能将文件下载到本地驱动器?我应该如何构造 .then 在这里阻塞?

4

1 回答 1

1

downloadjs并且download.js无济于事,因为这些是在浏览器中触发下载过程的前端库。例如,当您在客户端(在浏览器中)生成图像并希望用户下载它时。

为了在 Node(CLI) 中保存八位字节流,您可以使用fs模块:

const data = await fetch(apiURL, {
    method: 'GET',
    headers: {
      'Content-Type': 'application/json',
    }
  }).then(res => res.buffer());

fs.writeFile('filename.dat', data, (err) => {
  if (err) throw err;
  console.log('The file has been saved!');
});
于 2019-11-22T07:11:38.323 回答