我需要从休息电话获取拉链(对于模拟我使用带二进制选项的postman发布并添加一个带文件夹和html文件的小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
我应该如何克服这个问题并保存拉链? 还有其他推荐的(zlib)库来提取和保存zip?
答案 0 :(得分:2)
zlib
旨在提取gzip压缩或泄露数据,而不是.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无法处理这样的上传(如评论中所示),您可以使用cURL进行测试:
$ curl -XPOST localhost:3000 --data-binary @test.zip