首页 > 解决方案 > 如何从 API 请求向客户端发送 pdf

问题描述

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

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

标签: node.jsexpresspdfrequestrequest-promise

解决方案


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

看起来像这样

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

});

推荐阅读