我最近才注意到下面的代码没有做它之前做的事情...将文件写入磁盘。
const download = async (archive) => {
const d = await new Promise((resolve) => {
const opts = { method: 'GET' };
const req = https.request(url, opts, (res) => {
const file = fs.createWriteStream(`path/to/${archive}`);
res.on('data', (chunk) => {
file.write(chunk);
//process.stdout.write(chunk);
})
.on('end', () => file.end());
resolve(archive);
});
req.on('error', (error) => console.error(error));
req.end();
});
}
文件在磁盘上创建,但只有0B
。如果我取消注解process.stdout.write(chunk)
,它会很高兴地向控制台吐出二进制文件的官样文章。但实际上并没有将任何内容写入磁盘。
我在哪里出错了?或者最近在node
中发生了什么变化,悄悄地把我的代码搞砸了?很高兴有任何指导。
1条答案
按热度按时间0md85ypi1#
**更新:**我很快就说话了。见下面的评论
update2:this helped me。完整的zip文件正在下载和解压现在正确
感谢来自@jfriend00的评论,下面的编辑修复了这个问题
我可以发誓原始代码工作正常,然后停止工作,但我很高兴我没有发誓。
更新:
上面的编辑没有帮助。虽然现在文件确实下载了,但它没有正确下载。这是一个zip文件,但当我尝试解压缩它时,我得到一个错误
但是当我直接下载文件时,它解压得很好。所以我的代码无法正确下载文件。