我用Google搜索但找不到答案,但这一定是个常见问题。这是与Node request (read image stream - pipe back to response)相同的问题,没有答案。
如何将图像文件作为Express .send()响应发送?我需要将RESTful网址映射到图像 - 但如何使用正确的标头发送二进制文件?如,
<img src='/report/378334e22/e33423222' />
通话...
app.get('/report/:chart_id/:user_id', function (req, res) {
//authenticate user_id, get chart_id obfuscated url
//send image binary with correct headers
});
答案 0 :(得分:61)
Express中有一个api。
res.sendFile
app.get('/report/:chart_id/:user_id', function (req, res) {
// res.sendFile(filepath);
});
答案 1 :(得分:1)
使用流和错误处理的正确解决方案如下:
componentDidMount() {
this.state.subscription.trySubscribe()
// One
if (this.previousState !== this.props.store.getState()) {
this.state.subscription.notifyNestedSubs()
}
}
componentDidUpdate(prevProps) {
// Two
if (this.props.store !== prevProps.store) {
this.state.subscription.tryUnsubscribe()
const subscription = new Subscription(this.props.store)
subscription.onStateChange = this.notifySubscribers
this.setState({ store: this.props.store, subscription })
}
}
如果节点的年龄大于10,则需要使用pump而不是管道。