1

我有以下代码:

let request = require('request');
let fs = require('fs');

request.get('http://localhost:8080/report.rtf')
  .pipe(fs.createWriteStream(__dirname + '/savedDoc.rtf'));

它运行良好,但前提是文档从给定的 URL 成功下载。但是,如果出现任何 HTTP: 403、404 或任何其他错误,则会以零长度保存一个空文件!

.pipe()只有在 HTTP: 200 响应而不使用任何额外的 HEAD 请求的情况下,我如何才能做到这一点?应该可以一口气搞定!

4

1 回答 1

7

配管前检查.statusCode

const req = request
  .get('http://localhost:8080/report.rtf')
  .on('response', function (res) {
    if (res.statusCode === 200) {
      req.pipe(fs.createWriteStream(__dirname + '/savedDoc.rtf'))
    }
  })
于 2018-03-14T12:34:47.833 回答