zlibモジュールでは直接ディレクトリの解凍はできまでんでしたね。
Streamインターフェースではないですが、adm-zipというモジュールだと解凍できました。 https://github.com/cthackers/adm-zip On Saturday, February 22, 2014 6:09:45 PM UTC+9, meganetops wrote: > > node組込みのzlibモジュールにチャンレンジしてみました。 > http://nodejs.jp/nodejs.org_ja/docs/v0.10/api/zlib.html > > サンプルにあったような1ファイルだけを圧縮、解凍は動かせる事はできましたが、 > ディレクトリを圧縮したzipを解凍ができませんでした・・・。 > 下記のようなコードでためしてみています。 > > > var fs = require('fs'); > var zlib = require("zlib"); > var un_zip = zlib.createUnzip(); > > var inp = fs.createReadStream("wordpress-3.8.1-ja.zip"); > var out = fs.createWriteStream("tmp/wp"); > > inp.pipe(un_zip).pipe(out); > > > 下記のエラーが出てうまくいきませんでした。 > > events.js:72 > > throw er; // Unhandled 'error' event > > ^ > > Error: incorrect header check > > at Zlib._binding.onerror (zlib.js:295:17) > > エラーをもとに昨日からググってみましたが、 > クライアントサイドのJSとWordpressを触るのにPHPを少しやっている私レベルでは > ちょっと歯がたちません(汗 > > 何かヒントをいただけませんでしょうか。 > > よろしくお願いいたします。 > > > > 2014年2月21日金曜日 10時50分06秒 UTC+9 meganetops: >> >> はじめまして。 >> >> 私はNodeを少し触って遊んでみているWebデザイナーです。 >> WordPressをダウンロードしてzipを解凍するコードを書いて動かしてみたところ、 >> maximum call stack size exceeded エラーが出てしまいいきずまってしまいました。 >> >> 環境は、 >> OS:Window7 >> Node: v.0.10.24 >> です。 >> あと、zipの展開には「node-unzip <https://github.com/EvanOxfeld/node-unzip> >> 」というものを使用させていただいております。 >> >> 下記のコードで動かしてみているのですが何が原因となっていますでしょうか? >> >> var http = require("http"); >> var fs = require("fs"); >> var unzip = require("unzip"); >> >> var url = "http://ja.wordpress.org/latest-ja.zip"; >> var savedir = "./tmp" >> var output = fs.createWriteStream(savedir+"/wordpres-latest.zip"); >> >> >> var req = http.get(url,function(res){ >> res.pipe(output); >> >> res.on("data",function(){ >> console.log("on-data・・・"); >> }); >> res.on("end",function(){ >> console.log("finish!!!!!!!!"); >> output.close(); >> fs.createReadStream(savedir+"/wordpres-latest.zip") >> .pipe(unzip.Extract({ path: savedir })) >> .on('error', function (err) { console.log('error', err); }) >> .on('close', function () { console.log('closed'); }); >> }); >> }); >> >> zipの解凍はできているようで、 >> 展開されたファイルは出てきています。 >> >> よろしくお願いいたします。 >> >> >> -- --- このメールは Google グループのグループ「Node.js 日本ユーザグループ」の登録者に送られています。 このグループから退会し、メールの受信を停止するには、nodejs_jp+unsubscr...@googlegroups.com にメールを送信します。 その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。