事件.js:85 呃//未处理的'错误'事件 ^错误:不正确的头部检查在Zlib._handle.onerror(zlib.js:366:17)
var express = require('express'), fs = require('fs'), zlib = 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 ---->应用程序/ zip我应该如何克服这个问题并保存zip? 还有其他推荐(zlib)库来提取和保存zip?
解决方案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
I need to get zip from rest call (for simulation I use postman with binary option for post and add a little zip file with folder and html file),during the simulation I want to get the data with express and extract the zip and put in some folder under C drive. Currently when I run the following program(this is all the code which i've tried) but im getting error
events.js:85 throw er; // Unhandled 'error' event ^ Error: incorrect header check at 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) } )
in postman header i've added the following
content-Type ----> application/zipHow should I overcome this issue and save the zip ? there is other recommended (zlib)library to get extract and save zip?
解决方案zlib is meant to extract gzipped or deflated data, not .ZIP files.
You can use the node-unzip module for those:
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); });If Postman can't handle uploads like this (as suggested in the comments), you can test using cURL:
$ curl -XPOST localhost:3000 --data-binary @test.zip
更多推荐
错误:运行帖子时错误的标题检查
发布评论