gpt4 book ai didi

javascript - 构建一个中等复杂度的 Node 下载模块

转载 作者:行者123 更新时间:2023-12-01 00:00:24 25 4
gpt4 key购买 nike

我正在为 Electron Node 应用程序构建下载模块,想要尝试 node-fetch 并有几个问题。

  1. 如何获取总文件大小以便实现进度?
  2. 如何暂停/恢复/取消下载?

还有使用其他库的示例异常(exception) requestaxios 欢迎!谢谢!

这是我到目前为止所拥有的:

const fetch = require('node-fetch');
const fs = require('fs');

const url = 'https://images.pexels.com/photos/45201/kitty-cat-kitten-pet-45201.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940'

async function download() {
const nfetch = await fetch(url);

const fileStream = fs.createWriteStream('./octocat.png');
nfetch.body.pipe(fileStream);

nfetch.body.on("response", (data) => {
console.log('response ???');
});

nfetch.body.on("data", (chunk) => {
console.log(chunk.length);
});

nfetch.body.on("error", (err) => {
console.log('err:', err)
});

fileStream.on("finish", function () {
console.log('finish');
});
}

download();

最佳答案

  1. nfetch.headers 包含名为 Content-Length 的 header - 图像大小

  2. nfetch.body 是一个可读流 docs ,所以你可以使用以下方法:pause()resume()destroy()

关于javascript - 构建一个中等复杂度的 Node 下载模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60775928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com