Node.js,SQLite3和Express – POST上潜在的内存泄漏

我对node.js比较陌生,而且我的任务是编写一个简单的消息队列应用程序 – 基本上,应用程序将收到一个post,其中包含一些消息数据和客户端的mac地址,然后将其解码并插入到sqlite数据库,稍后由一个单独的进程发布。

一切工作正常,但我们正在经历什么可能是内存泄漏。 使用memwatch模块,我已经把漏洞缩小到我们的代码处理传入的post,我已经包括在下面:

app.route('*') .post(function(req, res){ var mac = decodeURI(unescape(req.param('mac').replace(/\+/g, "%20"))); var data = decodeURI(unescape(req.param('data').replace(/\+/g, "%20"))); req = null; db.run("INSERT INTO queue (mac, data) VALUES (?,?)", [mac, data], function(er){ if(er) { res.writeHead(500, "Insert to queue failed", {'Content-Type': 'text/html'}); res.end(); } else { res.writeHead(200, "OK", {'Content-Type': 'text/html'}); res.end(); } res = null; mac = null; data = null; }); }) 

我在这里找不到任何看起来不正确的东西,但是当我们向应用程序发布10000个请求时,我们几乎总是在memwatch中触发一个内存泄漏事件。 我正在寻找一个正确的方向在这里:我们是否只是曲解memwatch,或者是否有泄漏在这里我想念? 据我所知,memwatch认为堆栈增长超过5个或更多的V8垃圾收集尝试是连续泄漏 – 似乎有可能一次10000个职位,这样的堆增长预期,但我还没有find一个明确的答案,需要排除。 任何帮助,即使你只是指着我在正确的方向,将不胜感激!