Node Express将图像文件作为API响应发送

时间:2013-07-07 19:50:44

标签: image node.js express

我用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
});

2 个答案:

答案 0 :(得分:61)

Express中有一个api。

res.sendFile

app.get('/report/:chart_id/:user_id', function (req, res) {
    // res.sendFile(filepath);
});

http://expressjs.com/en/api.html#res.sendFile

答案 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而不是管道。