我将HTTP请求正文中的数据发送到具有gzip内容编码的Restify实例.唯一的问题是我无法访问带有gzip压缩数据的正文.
这是我用来确定它的我的JS代码,但是req.body是未定义的:
server.use(function(req, res, next) {
if(req.headers['content-encoding'] == 'gzip')
{
console.log(req);
// We have a gzipped body here
var zlib = require("zlib");
var gunzip = zlib.createGunzip();
console.log("Body: "+ req.body)
console.log("Length: " + req.body.length);
}
else
{
apiKey = req.query['apiKey'];
authenticateAndRoute(apiKey, req, res, next)
}
})
有人知道如何访问这里的req.body或同等的?
最佳答案 最新版本的restify通过bodyParser插件支持开箱即用.你只需要像这样初始化它:
server.use(restify.bodyParser({
bodyReader: true
}));
具有值gzip set的content-encoding头的请求将被自动解压缩,并且将根据指示的内容类型头解析req.body.