Nodejsの圧縮と解凍


一、圧縮
  1、zlib
  まず、nodejsの圧縮解凍モジュール「zlib」について説明します.まず、公式サイトで提供されているコードの例を見てみます.

  
  
  
  
  1. var zlib = require('zlib'); 
  2. var gzip = zlib.createGzip(); 
  3. var fs = require('fs'); 
  4. var inp = fs.createReadStream('input.txt'); 
  5. var out = fs.createWriteStream('input.txt.gz'); 
  6. inp.pipe(gzip).pipe(out); 
  例の実験によって成功しましたが、どうして私は一つの書類を包装するしかないですか?
  しかし、このモジュールの説明文書にはまだたくさんのトランスコードがあります.ウェブページの暗号解読用のもののように見えます.愚かで、興味のある人は自分で研究しましょう.今日は圧縮と解凍を探しています.
  2、node-native-zip
  私達は同様に1段のそのgitの上の例示的なコードを見にきます.

  
  
  
  
  1. var fs = require("fs"); 
  2. var zip = require("node-native-zip"); 
  3.  
  4. var archive = new zip(); 
  5.  
  6. archive.addFiles([  
  7.     { name: "moehah.txt", path: "./test/moehah.txt" }, 
  8.     { name: "images/suz.jpg", path: "./test/images.jpg" } 
  9. ], function (err) { 
  10.     if (err) return console.log("err while adding files", err); 
  11.  
  12.     var buff = archive.toBuffer(); 
  13.  
  14.     fs.writeFile("./test2.zip", buff, function () { 
  15.         console.log("Finished"); 
  16.     }); 
  17. }); 
  指定されたファイルを圧縮パッケージの指定されたパスに追加することができます.
  しかし、何のために作られたzipファイルは本物のzipファイルではないですか?モジュールを解凍する問題だと思っていました.
二、展開
  unzipモジュール
  私たちも同じようにコールコードを見てみます.

  
  
  
  
  1. var fs = require('fs'),   
  2.     unzip = require('unzip');  
  3. fs.createReadStream('path/to/archive.zip').pipe(unzip.Extract({ path: 'output/path' }));  
  二つのパスを指定すればいいです.一つのzipパッケージのパス、一つの解凍先のアドレスパス.
  また問題が来ました.どうしてコールバック関数がないですか?
  はい、実は間違った捕獲方法を報告しています.ソースを調べたら、次のような方法が分かりました.

  
  
  
  
  1. var extract = unzip.Extract({ path:  './public/ebook/' });  
  2. extract.on('error'function(err) {  
  3.     console.log("error++++++++++++++++++++++");  
  4.     console.log(err);  
  5.     //   
  6. });  
  7. extract.on('finish'function() {  
  8.     console.log(" !!");  
  9.     //   
  10. });  
  11. fs.createReadStream(target_path).pipe(extract);  
何を言いますか
  nodejsの圧縮と解凍のモジュールはまだたくさんあります.使いやすいのはまだ発見されていません.大体は文書が不備で、手のつけようがないです.学問は無限です.他のnodeモジュールが圧縮解凍機能を実現する人と交流して教えてください.