node.js簡単な圧縮/解凍機能の例を実現します。


本明細書の例は、簡単な圧縮/解凍機能を実現するためのnode.jsを述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
圧縮の例
非常に簡単なコードの数行で、ローカルファイルのgzip圧縮が完了しました。

var fs = require('fs');
var zlib = require('zlib');
var gzip = zlib.createGzip();
var inFile = fs.createReadStream('./extra/fileForCompress.txt');
var out = fs.createWriteStream('./extra/fileForCompress.txt.gz');
inFile.pipe(gzip).pipe(out);
ストレス解消の例
同様に非常に簡単です。逆操作です。

var fs = require('fs');
var zlib = require('zlib');
var gunzip = zlib.createGunzip();
var inFile = fs.createReadStream('./extra/fileForCompress.txt.gz');
var outFile = fs.createWriteStream('./extra/fileForCompress1.txt');
inFile.pipe(gunzip).pipe(outFile);

圧縮サービス
コードは超簡単です。まず、accept-encodingヘッダが含まれているかどうかを判断し、かつ、gzip値とする。
  • いいえ、圧縮されていないファイルを返します。
  • は、gzip圧縮後のファイルを返します。
  • 
    var http = require('http');
    var zlib = require('zlib');
    var fs = require('fs');
    var filepath = './extra/fileForGzip.html';
    var server = http.createServer(function(req, res){
      var acceptEncoding = req.headers['accept-encoding'];
      var gzip;
      if(acceptEncoding.indexOf('gzip')!=-1){ //       gzip  
        gzip = zlib.createGzip();
        //      Content-Encoding,     :    gzip    
        res.writeHead(200, {
          'Content-Encoding': 'gzip'
        });
        fs.createReadStream(filepath).pipe(gzip).pipe(res);
      }else{
        fs.createReadStream(filepath).pipe(res);
      }
    });
    server.listen('3000');
    
    
    デスクトップ文字列gzip圧縮
    コードは前の例と大同小異です。ここでは****slib.gzipSync*を使って文字列をgzip圧縮します。
    
    var http = require('http');
    var zlib = require('zlib');
    var responseText = 'hello world';
    var server = http.createServer(function(req, res){
      var acceptEncoding = req.headers['accept-encoding'];
      if(acceptEncoding.indexOf('gzip')!=-1){
        res.writeHead(200, {
          'content-encoding': 'gzip'
        });
        res.end( zlib.gzipSync(responseText) );
      }else{
        res.end(responseText);
      }
    });
    server.listen('3000');
    
    
    後に書く
    deflate圧縮の使用も同じです。ここでは詳しく説明しません。より詳細な使用法は公式文書を参照することができる。
    ここで述べたように皆さんのnode.jsプログラムの設計に役に立ちます。