1

我有一个使用connect编写的nodejs服务器。我将一些数据公开为 json。我必须在发送前压缩数据。我在连接中使用了压缩功能,但我不确定如何检查数据是否压缩。下面是我的代码:

var connect = require('connect')
 , http = require('http');

var app = connect()

 .use(connect.compress(console.log("I have compressed data")))

.use(function(req, res){
res.setHeader('Content-Type', 'application/json');
//res.end("store_id: 'S3000981'");

res.end('{"store_id": "S3000990"}');
});
http.createServer(app).listen(3000);

任何关于此的想法都会非常有帮助。

4

1 回答 1

1

运行你的服务器,然后试试这个:

curl -H 'Accept-Encoding: gzip' -v localhost:3000 

如果您看到以下内容,则表示响应已压缩:

< Content-Encoding: gzip

此外,这不会像您认为的那样做,并且可能会产生副作用:

.use(connect.compress(console.log("I have compressed data")))

如果您想在响应数据被压缩时记录来自服务器的消息,请尝试以下操作:

.use(connect.compress())
.use(function(req, res, next) {
  res.on('header', function() {
    var encoding = res.getHeader('Content-Encoding') || '';
    if (encoding.indexOf('gzip') != -1 || encoding.indexOf('deflate') != -1)
    {
      console.log("I have compressed data");
    }
  });
  next();
})
于 2013-03-14T10:51:11.593 回答