5

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

如果是 404,我只想发送文件系统中的无文件 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 情况。

我想我对流媒体太陌生了,什么不是。

有什么帮助吗?

谢谢!

4

1 回答 1

0

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

如果 404 不发送文件 png 否则做 request.get ...

于 2014-02-17T20:18:04.617 回答