错误:运行帖子时不正确的标题检查
Posted
技术标签:
【中文标题】错误:运行帖子时不正确的标题检查【英文标题】:Error: incorrect header check when running post 【发布时间】:2015-10-04 23:49:28 【问题描述】:我需要从 rest 调用中获取 zip(对于模拟,我使用带有二进制选项的 postman 进行 post 并添加一个带有文件夹和 html 文件的小 zip 文件),在模拟期间我想用 express 获取数据并提取 zip并放在C盘下的某个文件夹中。 目前,当我运行以下程序时(这是我尝试过的所有代码)但我收到错误
events.js:85 投掷者; // 未处理的“错误”事件 ^ 错误:不正确的标题检查 在 Zlib._handle.onerror (zlib.js:366:17)
var express = require('express'),
fs = require('fs'),
zlib = require('zlib'),
app = express();
app.post('/', function (req, res)
var writeStream = fs.createWriteStream('C://myFolder', flags: 'w');
req.pipe(zlib.createInflate()).pipe(writeStream);
);
var server = app.listen(3000, function ()
console.log("Running on port" + 3000)
)
在邮递员标题中,我添加了以下内容
content-Type ----> application/zip
我应该如何克服这个问题并保存 zip 文件? 还有其他推荐的 (zlib) 库来获取提取和保存 zip 吗?
【问题讨论】:
我不认为邮递员可以处理这个。您是否尝试过以某种方式发送 curl 请求? 【参考方案1】:zlib
用于提取压缩或压缩的数据,而不是 .ZIP 文件。
您可以使用node-unzip
模块:
var unzip = require('unzip');
...
app.post('/', function(req, res)
var extractor = unzip.Extract( path : 'C://myFolder' ).on('close', function()
res.sendStatus(200);
).on('error', function(err)
res.sendStatus(500);
);
req.pipe(extractor);
);
如果 Postman 无法处理这样的上传(如 cmets 中所建议的那样),您可以使用 cURL 进行测试:
$ curl -XPOST localhost:3000 --data-binary @test.zip
【讨论】:
非常感谢它的工作 投票赞成!只有一件事,当我运行它时,大约需要 10 秒才能得到响应(提取后文件大小为 3.5 MB)我可以以某种方式加快这个过程吗? @shopiaT 可能有提供更快解压缩的模块,但恐怕我无法为您提供任何名称(我自己没有其他模块的经验)。所示代码尽可能简单,我认为速度提升空间不大。 非常感谢,这就足够了!顺便说一句,如果我按诺言扭曲它,你认为它更好吗,我在谈论 unzip.extract 函数......你觉得呢? @shopiaT 没关系,性能方面。另外,unzip.Extract()
是一个流函数,可能很难转换为 Promise。以上是关于错误:运行帖子时不正确的标题检查的主要内容,如果未能解决你的问题,请参考以下文章
Flutter 错误 - 断言失败:第 213 行 pos 15:'data != null':在从 firestore 获取数据时不正确