gpt4 book ai didi

node.js - 使用下载管理器取消下载时 Nodejs 内存泄漏

转载 作者:太空宇宙 更新时间:2023-11-03 22:38:48 25 4
gpt4 key购买 nike

我使用 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);
}

一切正常,但是当我使用下载管理器(例如 Internet 下载管理器)测试应用程序时,当我中止或取消下载(在下载之前或期间)时,它会抛出警告:

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>

中止文件下载后如何删除监听器?

最佳答案

问题已解决
在 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

关于node.js - 使用下载管理器取消下载时 Nodejs 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15391815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com