Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NodeJS MySQL,连接丢失时重新连接?_Mysql_Node.js_Node Mysql - Fatal编程技术网

NodeJS MySQL,连接丢失时重新连接?

NodeJS MySQL,连接丢失时重新连接?,mysql,node.js,node-mysql,Mysql,Node.js,Node Mysql,我正在尝试这样做,以便在数据库失去连接时我的代码不会崩溃 它将连接到一个易于多次重新启动和更新的数据库,这意味着程序将在失去连接时崩溃 我尝试添加setInterval(Connect,5000)因此,如果失去连接,它将尝试重新连接,但运气不佳 有人能帮我找出哪里出了问题吗?假设您使用的是mysqlnpm包,您可以使用库提供的连接池: 从池中检索以前的连接时,会向服务器发送一个ping数据包,以检查连接是否仍然良好 它很容易使用,而不是使用createConnection您可以使用create

我正在尝试这样做,以便在数据库失去连接时我的代码不会崩溃

它将连接到一个易于多次重新启动和更新的数据库,这意味着程序将在失去连接时崩溃

我尝试添加
setInterval(Connect,5000)
因此,如果失去连接,它将尝试重新连接,但运气不佳


有人能帮我找出哪里出了问题吗?

假设您使用的是
mysql
npm包,您可以使用库提供的连接池:

从池中检索以前的连接时,会向服务器发送一个ping数据包,以检查连接是否仍然良好

它很容易使用,而不是使用
createConnection
您可以使用
createPool

var pool=mysql.createPool({
连接限制:2,
主持人:“example.org”,
用户:“bob”,
密码:“secret”,
数据库:“我的数据库”
});
然后使用池查询数据库


它还有许多其他好处,例如负载平衡连接。

假设您使用的是
mysql
npm包,您可以使用库提供的连接池:

从池中检索以前的连接时,会向服务器发送一个ping数据包,以检查连接是否仍然良好

它很容易使用,而不是使用
createConnection
您可以使用
createPool

var pool=mysql.createPool({
连接限制:2,
主持人:“example.org”,
用户:“bob”,
密码:“secret”,
数据库:“我的数据库”
});
然后使用池查询数据库


它还有许多额外的好处,例如负载平衡连接。

如果您刚刚开始使用节点和数据库,请考虑使用。@tadman比我更了解它。Sequelize是用于节点JS和DB连接的出色工具。我还要提出一个问题,为什么它会继续连接,然后失去连接?似乎是一个拱门问题。如果你刚刚开始使用节点和数据库,就考虑使用。@塔德曼击败了我。Sequelize是用于节点JS和DB连接的出色工具。我还要提出一个问题,为什么它会继续连接,然后失去连接?似乎是一个主要问题。在执行了您所说的操作后,我遇到了完全相同的问题:(结果表明,池已经自动执行这些检查,这意味着没有问题,并且我不需要添加函数setInterval。在执行了您所说的操作后,我遇到了完全相同的问题:(事实证明,池已经自动执行了这些检查,这意味着没有问题,我不需要添加函数setinterval
function Connect() {
    var connection = mysql.createConnection({
        host     : 'hidden',
        user     : 'hidden',
        password : 'hidden',
        database : 'hidden'
    });

    connection.connect(function(err) {
        if (err) {
            console.log('Error connecting to Database'.red);
            setInterval(Connect, 5000);
            connection.end();
            }else{
            console.log('Connected to Database'.green);
        }

    });
}

Connect();