我使用节点http下载远程文件并将其保存在光盘上。 看来,如果在下载文件时连接丢失,则不会发生“错误”或“关闭”事件。
之前我使用的是request,但我得到了同样的行为,我的http.get代码如下:
const urlData = url.parse(baseUrl)
const getOptions = {
protocol:urlData.protocol,
host:urlData.host,
path:urlData.path
}
http.get(getOptions,(downloadResponse)=>{
if(downloadResponse.statusCode===200){
const writeStream = fs.createWriteStream(SOME_FILE)
downloadResponse.on("error", (err)=> {
console.log('Download response error ')
})
writeStream.on("error",(err)=>{
console.log('Write stream error ')
})
downloadResponse.on('close',()=>{
console.log('Download response close')
})
writeStream.on('finish', () =>{
console.log('Everything fine!')
})
}
else{
console.log('error '+downloadResponse.statusCode)
}
})
.on('error',(err)=>{
console.log('Error on request')
console.log(err)
})
如果我进入飞行模式或断开下载,则进程永远不会结束。我错过了一些事件或类似的东西吗?