大佬教程收集整理的这篇文章主要介绍了node.js – 使用node express解压缩POST主体,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的中间件只是默认情况下由express提供的中间件:
app.configure(function(){ app.set('port',process.env.PORT || 3000); app.set('views',__dirname + '/views'); app.set('view ENGIne','jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser('your secret here')); app.use(express.session()); app.use(app.router); app.use(require('less-middleware')({ src: __dirname + '/public' })); app.use(express.static(path.join(__dirname,'public'))); });
app.use(function(req,res,next) { var data = ''; req.addListener("data",function(chunk) { data += chunk; }); req.addListener("end",function() { zlib.inflate(data,function(err,buffer) { if (!err) { req.body = buffer; next(); } else { next(err); } }); }); });
问题出在zlib.inflate我收到此错误:
Error: incorrect header check
数据已经使用python的zlib模块进行了压缩:
zlib.compress(jsonString)
但似乎没有解压缩,膨胀,枪口工作.
req.addListener("data",function(chunk) { data += chunk; });
似乎连接请求数据不正确,所以我把我的中间件切换到这个:
app.use(function(req,next) { var data = []; req.addListener("data",function(chunk) { data.push(new Buffer(chunk)); }); req.addListener("end",function() { buffer = Buffer.concat(data); zlib.inflate(buffer,result) { if (!err) { req.body = result.toString(); next(); } else { next(err); } }); }); });
连接缓冲区工作得很好,我现在能够解压缩请求体.
以上是大佬教程为你收集整理的node.js – 使用node express解压缩POST主体全部内容,希望文章能够帮你解决node.js – 使用node express解压缩POST主体所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。