对你们中的一些人来说可能是个简单的问题。我有一个 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 情况。
我想我对流还是太陌生了。
有什么帮助吗?
谢谢!
最佳答案
先做一个request.head怎么样? (小开销)。
如果 404 没有发送文件 png 否则做 request.get ...
关于node.js - Node 请求(读取图像流 - 管道返回响应),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17004990/