我正在运行其他人写的node.js代码。有问题的部分如下:
client.query('CREATE TABLE ABC (id INT(11) AUTO_INCREMENT PRIMARY KEY, stuff VARCHAR(255), more INT(3))',
function (error) {
//Handle an error if it's not a table already exists error
if(error && error.number != 1050) {
throw (error);
}
});
每次运行时,我都会收到此错误:
progfile.js:251
throw (error);
^
Error: connect ECONNRESET
at errnoException (net.js:776:11)
at Object.afterConnect [as oncomplete] (net.js:767:19)
据我所知,该错误意味着数据库关闭了连接? 我如何确认,以及在哪里可以获得更多信息?我需要帮助追踪它为什么会发生以及如何防止它发生。
Node.js代码在WinXP机器上运行,数据库在CentOS VPS上运行。
答案 0 :(得分:0)
实际问题可能在您的代码中的其他位置,其效果只会显示在您显示的代码中。
特别是,在回调有机会运行之前,请确保您没有“掉进”关闭连接的内容。在您的示例中,您的回调所做的就是检查错误,这使我怀疑您在调用client.query
之后的代码中尝试使用数据库执行更多操作。由于MySQL客户端的异步特性,这不会起作用;您显示的调用之后的任何语句将在实际数据库查询有机会运行之前执行。任何依赖于您的查询的内容都必须在里面回调。
如果这不能立即解决问题,请编辑您的问题,以便在您展示的代码之前和之后包含代码。