0

Node.jsとの通常の接続を使用する代わりに、mysql へのプール接続の使用を開始しました。プロセスが終了したら、接続を解放する必要があるためです。接続が開いたままになると、 mysqlタイムアウトの問題によりNode.jsが例外になります。

コードを編集しましたが、94 行目のようなエラーは表示されません。

TypeError: Object #<Connection> has no method 'release'
    at Query._callback (/usr/local/src/conn.js:94:28)

その行の上:

socket.on('getUnreadPM', function (msg) {


    var userSocket = clients[msg.userDestID];

    if (msg.lastGotMessage == 'none') {
        post = 'Select * from messages where (destUserID=\'' + msg.userDestID + '\' AND srcUserID=\'' + msg.userSrcID + '\') OR (destUserID=\'' + msg.userSrcID + '\' AND srcUserID=\'' + msg.userDestID + '\')';

    } else {

        post = 'Select * from messages where destUserID=\'' + msg.userDestID + '\' AND srcUserID= \'' + msg.userSrcID + '\' AND messageSendDate between \'' + msg.lastGotMessage + '\' and \'' + msg.deviceCurrentTime + '\' AND messageSendDate > \'' + msg.lastGotMessage + '\' order by messageSendDate';

    }

    pool.getConnection(function (err, connection) {
        // Use the connection   
        connection.query(post, function (error, results, fields) {
            // And done with the connection.

            if (results.length > 0) {

                if (typeof userSocket !== 'undefined') {

                    var boolData = results[0];
                    //console.log('bool data lenght : ',results.length);
                    var messageID = new Array();
                    var srcUserID = new Array();
                    var destUserID = new Array();
                    var messageContent = new Array();
                    var messageDate = new Array();
                    var didRead = new Array();

                    for (var i = 0; i < results.length; i++)

                    {
                        messageID.push(results[i].messageID);
                        srcUserID.push(results[i].srcUserID);
                        destUserID.push(results[i].destUserID);
                        messageContent.push(results[i].messageContent);
                        messageDate.push(dateFormat(results[i].messageSendDate, "yyyy-mm-dd HH:MM:ss"));
                        didRead.push(results[i].didRead);
                    }

                    userSocket.emit('history :', {
                        'dataMode': 'history',
                            'srcUserID': srcUserID,
                            'destUserID': destUserID,
                            'messageContent': messageContent,
                            'messageSendDate': messageDate,
                            'didread': didRead
                    });

                } else {

                    userSocket.emit('history :', {
                        'dataMode': 'none',

                    });
                }

            } else {

                userSocket.emit('history :', {
                    'dataMode': 'none',

                });                

            }

            connection.release();

        });
    });
});
4

1 に答える 1