如何使用expressJS发送gz压缩的json响应数据
我正在尝试使用nodeJS创建一个API,我需要对响应进行gz压缩 我在代码中使用压缩中间件 app.use(compression()) 在我的路线上如何使用expressJS发送gz压缩的json响应数据,json,node.js,mongodb,express,Json,Node.js,Mongodb,Express,我正在尝试使用nodeJS创建一个API,我需要对响应进行gz压缩 我在代码中使用压缩中间件 app.use(compression()) 在我的路线上 collection.find({_id: 'doc_id'}, reqField).toArray(function(err, docs) { if (err) res.send(err); var data = docs['vals']; JSON.stringify(data); res.send({status
collection.find({_id: 'doc_id'}, reqField).toArray(function(err, docs) {
if (err)
res.send(err);
var data = docs['vals'];
JSON.stringify(data);
res.send({status:301, response:data});
});
来自此API的响应不会在客户端压缩。
任何帮助都将不胜感激,因为我是nodeJS的新手。提前感谢。您如何检查响应的压缩状态?另外,请确保在任何路由之前包含中间件,并注意默认情况下,
压缩
不会压缩响应。在我的响应标题中,它以text/html的形式显示在该响应类型中。此外,我还将app.use(compression())放在;路由之前。内容类型
在压缩发生时不会更改,您应该查看内容编码
标题(这还假设您使用的客户端也设置了正确的接受编码
标题)。除此之外,text/html
很奇怪,因为您正在返回JSON。响应中没有内容编码头。连接关闭内容长度4837内容类型文本/html;charset=UTF-8日期2016年8月17日星期三03:52:48 GMT服务器Apache/2.2.15(CentOS)X-Powered-By-PHP/5.5.28;这是响应头。在请求头中有Accept-Encoding-gzip,deflateIf您使用的是Node,为什么头显示的是Apache+PHP?