【问题标题】:Node request (read image stream - pipe back to response)节点请求(读取图像流 - 管道返回响应)
【发布时间】:2013-06-04 23:50:57
【问题描述】:

可能对你们中的一些人来说很简单。我有一个 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 情况。

我想我对流媒体太陌生了。

有什么帮助吗?

谢谢!

【问题讨论】:

  • 不应该是req.get而不是request.get
  • 请求来自我使用请求库,它需要在页面的较高位置。 Request 为您提供了良好的管道电缆能力。
  • 你解决了吗?我也有同样的问题。

标签: node.js stream pipe


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多