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 に答える