我在使用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);
对此有任何想法都会非常有用。
答案 0 :(得分: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();
})