Mysql 循环中的查询-连接丢失-节点JS

Mysql 循环中的查询-连接丢失-节点JS,mysql,node.js,loops,connection,Mysql,Node.js,Loops,Connection,我正在尝试执行一组非常大的SELECT语句,每个语句都需要几分钟才能在while循环中完成执行 var con = mysql.createConnection( { host: "host_name", user: "user_name", password: "password", database: "database_name" }); con.connect(); while(arg1 < arg2) { var query =

我正在尝试执行一组非常大的SELECT语句,每个语句都需要几分钟才能在while循环中完成执行

var con = mysql.createConnection(
{

    host: "host_name",
    user: "user_name",
    password: "password",
    database: "database_name"

});

con.connect();

while(arg1 < arg2)
{

    var query = SELECT * FROM table WHERE value=arg1;
    con.query(query, function (err, result) 
    {
        //Rest of code
    });
    arg = arg + 1;

}
con.end();
在以下代码中:

while(arg1 < arg2)
{

    handleDisconnect();       
    var query = SELECT * FROM table WHERE value=arg1;
    connection.query(query, function (err, result) 
    {
        //Rest of code
    });
    arg = arg + 1;

}
但我仍然收到以下错误消息:

error when connecting to db: { Error: Connection lost: The server closed the connection.
    at Protocol.end (C:\Users\X\node_modules\mysql\lib\protocol\Protocol.js:109:13)
    at Socket.<anonymous> (C:\Users\X\node_modules\mysql\lib\Connection.js:109:28)
    at emitNone (events.js:110:20)
    at Socket.emit (events.js:207:7)
    at endReadableNT (_stream_readable.js:1047:12)
    at _combinedTickCallback (internal/process/next_tick.js:102:11)
    at process._tickCallback (internal/process/next_tick.js:161:9)
    --------------------
    at Protocol._enqueue (C:\Users\X\node_modules\mysql\lib\protocol\Protocol.js:141:48)
    at Protocol.handshake (C:\Users\X\node_modules\mysql\lib\protocol\Protocol.js:52:41)
    at Connection.connect (C:\Users\X\node_modules\mysql\lib\Connection.js:130:18)
    at handleDisconnect (C:\Users\X\connection.js:182:13)
    at Object.<anonymous> (C:\Users\X\connection.js:105:2)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3) fatal: true, code: 'PROTOCOL_CONNECTION_LOST' }
C:\Users\X\connection.js:213
                if (err) throw err;
                         ^

Error: Connection lost: The server closed the connection.
    at Protocol.end (C:\Users\X\node_modules\mysql\lib\protocol\Protocol.js:109:13)
    at Socket.<anonymous> (C:\Users\X\node_modules\mysql\lib\Connection.js:109:28)
    at emitNone (events.js:110:20)
    at Socket.emit (events.js:207:7)
    at endReadableNT (_stream_readable.js:1047:12)
    at _combinedTickCallback (internal/process/next_tick.js:102:11)
    at process._tickCallback (internal/process/next_tick.js:161:9)
    --------------------
    at Protocol._enqueue (C:\Users\X\node_modules\mysql\lib\protocol\Protocol.js:141:48)
    at Protocol.handshake (C:\Users\X\node_modules\mysql\lib\protocol\Protocol.js:52:41)
    at Connection.connect (C:\Users\X\node_modules\mysql\lib\Connection.js:130:18)
    at handleDisconnect (C:\Users\X\connection.js:182:13)
    at Object.<anonymous> (C:\Users\X\connection.js:105:2)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)

有什么我不知道的,或者有什么我应该知道的,以成功地管理断开?在Node JS理解如何处理同步和异步函数的概念时,我仍然有困难,也许我的问题来自这里。

您确定MySQL配置为允许您连接那么长时间吗?如果为每个查询创建一个新连接,会发生什么情况?@cwallenpole我不确定MySQL的配置,但当我尝试在while循环和con.end的开头编写con.connect时;就在结束之前,我收到了以下错误消息:错误:在已将握手排队后无法将握手排队。
while(arg1 < arg2)
{

    handleDisconnect();       
    var query = SELECT * FROM table WHERE value=arg1;
    connection.query(query, function (err, result) 
    {
        //Rest of code
    });
    arg = arg + 1;

}
error when connecting to db: { Error: Connection lost: The server closed the connection.
    at Protocol.end (C:\Users\X\node_modules\mysql\lib\protocol\Protocol.js:109:13)
    at Socket.<anonymous> (C:\Users\X\node_modules\mysql\lib\Connection.js:109:28)
    at emitNone (events.js:110:20)
    at Socket.emit (events.js:207:7)
    at endReadableNT (_stream_readable.js:1047:12)
    at _combinedTickCallback (internal/process/next_tick.js:102:11)
    at process._tickCallback (internal/process/next_tick.js:161:9)
    --------------------
    at Protocol._enqueue (C:\Users\X\node_modules\mysql\lib\protocol\Protocol.js:141:48)
    at Protocol.handshake (C:\Users\X\node_modules\mysql\lib\protocol\Protocol.js:52:41)
    at Connection.connect (C:\Users\X\node_modules\mysql\lib\Connection.js:130:18)
    at handleDisconnect (C:\Users\X\connection.js:182:13)
    at Object.<anonymous> (C:\Users\X\connection.js:105:2)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3) fatal: true, code: 'PROTOCOL_CONNECTION_LOST' }
C:\Users\X\connection.js:213
                if (err) throw err;
                         ^

Error: Connection lost: The server closed the connection.
    at Protocol.end (C:\Users\X\node_modules\mysql\lib\protocol\Protocol.js:109:13)
    at Socket.<anonymous> (C:\Users\X\node_modules\mysql\lib\Connection.js:109:28)
    at emitNone (events.js:110:20)
    at Socket.emit (events.js:207:7)
    at endReadableNT (_stream_readable.js:1047:12)
    at _combinedTickCallback (internal/process/next_tick.js:102:11)
    at process._tickCallback (internal/process/next_tick.js:161:9)
    --------------------
    at Protocol._enqueue (C:\Users\X\node_modules\mysql\lib\protocol\Protocol.js:141:48)
    at Protocol.handshake (C:\Users\X\node_modules\mysql\lib\protocol\Protocol.js:52:41)
    at Connection.connect (C:\Users\X\node_modules\mysql\lib\Connection.js:130:18)
    at handleDisconnect (C:\Users\X\connection.js:182:13)
    at Object.<anonymous> (C:\Users\X\connection.js:105:2)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)