MSSQL-节点-内存泄漏

时间:2020-01-09 16:34:19

标签: node.js sql-server memory-leaks google-chrome-devtools

我创建了一个查询Microsoft SQL Server的Node API。我正在将节点10.13.0与MSSQL 5.1.0一起使用。我已经制作了一个模块,可以轻松执行查询。

module.exports = async function executeQuery(query, params) {
    return new Promise((resolve, reject) => {
        new sql.ConnectionPool(config).connect().then(pool => {
            let request = pool.request();
            if (typeof params != "undefined") {
                Object.keys(params).forEach(function(key) {
                    request.input(key, params[key]);
                });
            }
            return request.query(query);
        }).then(result => {
            sql.close();
            resolve(result.recordset);
        }).catch(err => {
            reject(err);
            sql.close();
        });
    });
};

我发现我发生了内存泄漏,因为当人们使用Node API时,内存一直在增加。我用--inspect用DevTools做了一些堆快照。我认为这与查询Microsoft SQL Server的MSSQL模块有关。我对Chrome中的Node DevTools不太了解,但是我可以看到(关闭)中有很多()。它们都包含相同的对象,并且在其中包含对我的变量pool in ConnectionPool的引用。

我错过了什么吗?我会严重关闭连接吗?谢谢您的帮助。

0 个答案:

没有答案