节点请求(读取图像流 - 管道返回响应)

时间:2013-06-08 23:37:53

标签: node.js stream pipe

对你们中的一些人来说可能很容易。我有一个API端点,它返回一个http响应,其Content-Type设置为图像类型 - image / jpeg,image / png等,如果没有我正在发送的ID的人的图像,则返回404。

如果是404,我想发送位于文件系统中的no file png。我一直在尝试使用请求和管道,我没有找到一个类似的例子。人们总是从文件中流式传输。

这应该单独起作用吗?

app.get('/api/customers/:id/image', function (req, res) {
    request.get(util.format(config.apis.getImage, req.params.id)).pipe(res);
    //res.sendfile(path.join(__dirname, '/static/img/user.png'));
});

它会将图像返回给浏览器,但会抛出异常:

stream.js:94
throw er;  // Unhandled stream error in pipe.
Error: Parse Error
at Socket.socketOnData(http.js:1556:20)
...

无论哪种方式,我都想检查请求调用的响应,以防404情况。

我想我对于溪流来说太新了,什么不是。

任何帮助?

谢谢!

1 个答案:

答案 0 :(得分:0)

先做一个request.head怎么样? (小开销)。

如果404发送没有文件png,则执行request.get ...