如何从API请求将pdf发送给客户端

时间:2019-02-24 20:05:07

标签: node.js express pdf request request-promise

我正在请求一个返回pdf文件的API。我尝试过res.send(data),但是它不起作用,原因返回了一个空白的PDF文件(显示页面长度,但为空)。

rp("URI")
    .then(data =>{
        res.contentType("application/pdf")
        res.send(data)
    })
    .catch(e =>{
        console.log(e)
    })

1 个答案:

答案 0 :(得分:1)

  • 发送用于常见的HTTP响应,例如JSON,XML等。
  • 要发送文件,您需要使用filePath及其参数调用res.sendFile

看起来像这样

app.get('/file/:name', function (req, res, next) {

  var options = {
    root: __dirname + '/public/',
    dotfiles: 'deny',
    headers: {
        'x-timestamp': Date.now(),
        'x-sent': true
    }
  };

  var fileName = req.params.name;
  res.sendFile(fileName, options, function (err) {
    if (err) {
      next(err);
    } else {
      console.log('Sent:', fileName);
    }
  });

});