2

Expressjs 3 と Nodejs 0.10 を使用してシンプルなファイル ダウンローダーを作成しました

function download(req, res, filepath, filename){
    res.header('Content-Type', 'application/force-download');
    res.header('Content-Type', 'application/octet-stream');
    res.attachment(filename);
    res.download(filepath, filename);
}

すべて問題ありませんが、ダウンロード マネージャー (インターネット ダウンロード マネージャーなど) を使用してアプリケーションをテストすると、ダウンロードを中止またはキャンセルすると (ダウンロード前またはダウンロード中に)、警告がスローされます。

Trace
    at Socket.EventEmitter.addListener (events.js:160:15)
    at Socket.Readable.on (_stream_readable.js:653:33)
    at Socket.EventEmitter.once (events.js:179:8)
    at TCP.onread (net.js:512:26)

(node) warning: <b>possible EventEmitter memory leak detected. 11 listeners added. Use
emitter.setMaxListeners() to increase limit.</b>

ファイルのダウンロードを中止した後、リスナーを削除するにはどうすればよいですか?

4

1 に答える 1

0

問題は解決しました Expressjs 定義の後にsetMaxListeners(0)
を 追加します。

var express = require('express');

//expressjs 2.x
//var app = module.exports = express.createServer();

//expressjs 3.x
var app = module.exports = express();

//ADD BELOW CODE
app.setMaxListeners(0);


@robertklepに感謝

于 2013-03-17T09:56:39.997 に答える