节点http-get检测连接丢失

时间:2016-08-18 19:32:45

标签: node.js http stream

我使用节点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)
    })

如果我进入飞行模式或断开下载,则进程永远不会结束。我错过了一些事件或类似的东西吗?

0 个答案:

没有答案