node-unzipモジュールの中でpullstreamというモジュールが使われており、 そのモジュールがprocess.nextTickを再帰的に呼び出しているようです。
Error: (node) warning: Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral. at maxTickWarn (node.js:375:15) at process.nextTick (node.js:480:9) at pullServiceRequest (/Users/.../node_modules/unzip/node_modules/pullstream/pullstream.js:48:17) at PullStream.<anonymous> (/Users/.../node_modules/unzip/node_modules/pullstream/pullstream.js:38:5) at PullStream.pull (/Users/.../node_modules/unzip/node_modules/pullstream/node_modules/over/overload.js:24:23) at /Users/.../node_modules/unzip/lib/parse.js:235:24 at process._tickCallback (node.js:415:13) --throw-deprecation もしくは --trace-deprecationオプションをつけて実行すると、 スタックトレースが吐出されるようになります。 node --throw-deprecation app.js unzipする目的であれば、node組込みのzlibモジュールで代替できるかと思います。 http://nodejs.org/api/zlib.html#zlib_zlib_unzip_buf_callback On Friday, February 21, 2014 10:50:06 AM UTC+9, meganetops wrote: > > はじめまして。 > > 私は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 にアクセスしてください。