微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Node.js 问题与 docker-application 中的 body-parser 一起使用 JSignPDF 对 pdf 进行数字签名

如何解决Node.js 问题与 docker-application 中的 body-parser 一起使用 JSignPDF 对 pdf 进行数字签名

我正在寻找一种解决方案,它允许我在 Linux 环境中从 Python 应用程序中使用 X.509 认证对 pdf 文档进行数字签名。我遇到了一个名为 JSignPDF 的 Java 工具,它似乎满足了我的所有要求,并且还从 ekiametis in Github 找到了一个很好的 docker 包装器。

然而,我很难弄清楚 API 端点 /pdf/sign 关于要传递的数据的预期格式的确切语法。遗憾的是没有提供 curl 或请求示例

到目前为止,我尝试了不同的东西,例如

files = [('filename','test.pdf'),('file',open('test.pdf','rb'))]
response = requests.post(pdf_sign_url,data=files,headers={'Content-Type': 'application/pdf'}) 

但总是收到一个

TypeError: Cannot read property 'filename' | at sign (/opt/api/api/controller/pdf-controller.js:8:35)

指向需要 req.body.filename 的 pdf-controller.js

const filename = req.body.filename || 'signed_document';

所以为了验证我没有搞砸我刚刚尝试过的请求

curl -i -X POST -H 'Content-Type: application/json' -d '{"filename":"test.pdf"}' http://localhost:4000/pdf/sign

这也不起作用。在 donctainer 中进行一些调试后,我注意到 req.body 本身是空的。我简单地编辑了应用程序以从 Request-Header 中获取参数,并且奏效了。

我从未真正使用过 Node.js,但这个问题似乎与缺少 body-parser 有关?这就是 app.js 的样子

const express = require('express');
const app = express();
const PDFRoutes = require('./api/route/pdf-routes');
const Validation = require('./api/config/validation');

const PORT = process.env.PORT || 8080;

app.use('/pdf',PDFRoutes);

Validation.validateRequirements();

const server = app.listen(PORT,function () {
  console.log('Example app listening on port ' + PORT + '!');
});

哪种正文解析器适合处理 pdf 内容流?

谢谢你帮我弄清楚。顺便说一句,如果您启动 docker-compose up,它会在 localhost:4000 而不是 :8080 上公开服务,因为它在 github 文档中声明。

解决方法

package.json 中使用 ^,最新的库是在 npm install 获取的,因为 express 不再附带默认的正文解析器,我添加了一个原始的解析器,但因为它只能接受一个文件作为八位字节流并且不能混合不同的参数我最终重写了该部分以使用 'multer',它提供了一个非常方便的 multipart / form-data 解析器。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?