Ответы пользователя по тегу Socket.io
  • Node.js + socket.io и mysql как организовать соединение?

    CartmanGui
    @CartmanGui Автор вопроса
    Тимур Шемсединов, у меня тут вопрос по поводу пула соединений с БД.
    Вот к примеру в основном файле приложения я создаю глобальный пул
    app.js
    global.appChat = {};
    appChat.pool = mysql.createPool(config.get('mysql'));

    Потом в модуле user создаю методы для работы с БД

    user.js
    module.exports.getUserById = function(userId, callback){
        $sql = 'SELECT * users WHERE id = ?';
        appChat.pool.getConnection(function(err, connection) {
            if (err) throw err;
            connection.query($sql, [userId], function(err, rows, fields) {
                if (err) throw err;
                connection.release();
                callback(null, rows.length ? rows[0] : null);
            });
        });
    };
    
    module.exports.getUsers = function(callback){
        $sql = 'SELECT * FROM users';
        appChat.pool.getConnection(function(err, connection) {
            if (err) throw err;
            connection.query($sql,function(err, rows, fields) {
                if (err) throw err;
                connection.release();
                callback(null, rows);
            });
        });
    };


    Теперь когда я буду вызывать где либо методы модуля user то каждый раз будет создаваться новое соединение с БД и как я понял вызов connection.release(); не закрывает соединение (т.к в доках для node-mysql написано что все соединения пула закрываются вызовом pool.end) то они будет постоянно открыты и накапливаться?
    Ответ написан