我试图使用node-request管道存储在Amazon S3上的图像。然而,有时候图像不存在,由S3作为状态代码403暴露出来。我很难看到如果能够成功管道(200),但是如果是一个非200。
使用abort()方法似乎是一种方法,但获得r.abort is not a function
,即使它应该在请求中可用。
// context: inside a request handler, where `res` is the response to write to
const r = request(url)
.on('response', function (response) {
if (response.statusCode !== 200) {
r.abort(); //failing
// I want to stop the piping here and do whatever instead.
}
})
.pipe(res);
思想?
答案 0 :(得分:5)
回答我自己的问题:在确定正确之前不要开始配管:
request(url)
.on('response', function (r) {
if (r.statusCode !== 200) {
//take other action
}
r.pipe(res);
})