致命错误之后的节点JS Mysql PROTOCOL ENQUEUE

Kri*_*son 12 mysql node.js

误差的意义是什么?

此代码适用于我的测试文件.

{ [Error: Cannot enqueue Query after fatal error.] code: 'PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR', fatal: false }
Run Code Online (Sandbox Code Playgroud)

但是当我在Express App中使用该功能时,我得到了错误.

function handleDisconnect() {
    objConn = mysql.createConnection(db_config);    // Recreate the connection, since
                                                    // the old one cannot be reused.
    objConn.connect(function(err) {                 // The server is either down
        if(err) {                                   // or restarting (takes a while sometimes).
            console.log('error when connecting to db:', err.code);
            setTimeout(handleDisconnect, 2000);     // We introduce a delay before attempting to reconnect,
        }else{
            console.log('Connected to db!');
        }                                           // to avoid a hot loop, and to allow our node script to
    });                                             // process asynchronous requests in the meantime.
                                                    // If you're also serving http, display a 503 error.
    objConn.on('error', function(err) {
        if(err.code === 'PROTOCOL_CONNECTION_LOST') { // Connection to the MySQL server is usually
            handleDisconnect();                       // lost due to either server restart, or a
        }else{
            throw err;
        }
    });
}

handleDisconnect();
megaLoop();

function megaLoop(){
    objConn.query('SELECT u.`email` FROM `users` as u', function(err, rows) {
        console.log(err);
        console.log(rows);
    });
    setTimeout(megaLoop, 100); 
}
Run Code Online (Sandbox Code Playgroud)

所以问题我的错误是什么剂量?并且方式剂量它在我的测试而不是我的应用程序工作?

Saw*_*key 7

我在与MySQL连接时遇到了类似的问题。我使用连接池解决了这个问题。其概念是仅在需要时才从连接池获取连接,并在使用后释放连接。这样,连接将不会处于不稳定状态。您可以在此处获取实现的详细信息。


Sco*_*ott 0

我相信问题是express-sql-session。我现在遇到同样的问题。我认为有人在这篇文章中注意到了一些事情:NodeJS running on MAC, and had an error gone when Deploying on centOS

也检查一下:https ://github.com/felixge/node-mysql/issues/1166