使用节点请求传输图像但在非 200 http 状态代码上中止
Pipe image using node-request but abort on non-200 http status code
我正在尝试使用 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);
想法?
回答我自己的问题:在确定正确之前不要开始管道:
request(url)
.on('response', function (r) {
if (r.statusCode !== 200) {
//take other action
}
r.pipe(res);
})
我正在尝试使用 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);
想法?
回答我自己的问题:在确定正确之前不要开始管道:
request(url)
.on('response', function (r) {
if (r.statusCode !== 200) {
//take other action
}
r.pipe(res);
})