node.js - 如何从 API 请求向客户端发送 pdf
问题描述
我正在向一个返回 pdf 文件的 API 发出请求。我试过 res.send(data) 但它不起作用,因为返回一个空白的 PDF 文件(它显示页面长度但为空)。
rp("URI")
.then(data =>{
res.contentType("application/pdf")
res.send(data)
})
.catch(e =>{
console.log(e)
})
解决方案
- 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);
}
});
});
推荐阅读
- python - Pandas 将函数应用于列表中的多个列
- google-cloud-platform - 从 GKEPodOperator 返回一个 python 对象
- validation - Terraform 变量验证 Terraform v0.13 与长度和 Substr
- java - 如何在java中添加和合并同一地图的值
- javascript - Javascript,来自 Promise 上的 API emtpy 结果
- python - 如何删除 Django 应用程序中的所有迁移文件
- javascript - 来自 Firebase 身份验证的密码提示和配置文件
- ios - 单击并显示标注时添加注释,标注消失
- ios - 为什么 FadeInImage 会在图像 url 错误时阻止网络请求
- django - 无法在 Django 中运行 Celery 任务 - 我得到“AppRegistryNotReady:应用程序尚未加载”或“RuntimeError:populate() 不可重入”