Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用expressJS发送gz压缩的json响应数据_Json_Node.js_Mongodb_Express - Fatal编程技术网

如何使用expressJS发送gz压缩的json响应数据

如何使用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

我正在尝试使用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: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?