Обнаружена утечка памяти в EventEmitter. Добавлено 11 открытых слушателей - PullRequest
0 голосов
/ 10 октября 2019

У меня есть API, который отлично работает, но я получаю там следующее предупреждение:

Обнаружена возможная утечка памяти в EventEmitter. '11 открытых слушателей добавлено. Используйте emitter.setMaxListeners () для увеличения лимита

Я нашел то, что я надеялся, было решением здесь: https://www.reddit.com/r/javascript/comments/6b0qz0/asyncawait_possible_eventemitter_memory_leak/

Но это не сработало для меня: (

Это 1 функция из моего API:

const settings = require("../configuration/development/settings");
const sql = require('mssql');

exports.getAllMeetings = function (req, res) {
    sql.connect(settings).then(pool => {

        return pool.request()
            .execute('MeetingSelect')
    }).then(result => {
        if (result) {
            sendJson(req, res, result);
        }
    }).catch(err => {
        res.send(err);
        sql.close();
    });

    sql.on('error', err => {
        res.send(err);
        sql.close();
    });
}

function sendJson(req, res, data) {
    res.writeHead(200, {
        'Content-Type': 'application/json'
    });
    if (data) {
        res.write(JSON.stringify(data));
        sql.close();
    }
    sql.close();
    res.end();
};

Я пытался добавить следующее для удаления слушателей после каждого закрытия, но, похоже, он никогда не попадал внутрь.

sql.on("close", () => {
    sql.removeAllListeners();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...