【发布时间】:2020-03-31 12:08:52
【问题描述】:
我有一个由 node.js 运行的网络服务器 它使用 Express、Socket.io 和 MySQL
我使用 socket.io 将数据从客户端传输到服务器,也用于调用查询。
在执行 SQL 连接和查询后,服务器在运行 60 秒后开始停止。
index.js 文件中的 SQL 部分:
// SQL
var mysql = require('mysql');
var con = mysql.createConnection({
host: "...",
user: "...",
password: "...",
database: "..."
});
//Socket.io
var io = require('socket.io') (serv, {});
io.sockets.on('connection', function(socket) {
// Select
socket.on("recherche", function(data) {
if (err) throw err;
con.query("SELECT * FROM ..", function (err, result, fields) {
if (err) throw err;
socket.emit("...", {data: result});
});
});
// Insert into
socket.on("...", function(data) {
con.connect(function(err) {
if (err) throw err;
var sql = "INSERT INTO ... VALUES (...)";
con.query(sql, function (err, result) {
if (err) throw err;
console.log("1 record inserted");
});
});
});
});
启动服务器后 60 秒内一切正常。 然后,我在 nodejs 控制台中有这个错误消息:
C:\Users\...>node index.js
events.js:187
throw er; // Unhandled 'error' event
^
...
Error: Connection lost: The server closed the connection.
...
fatal: true,
code: 'PROTOCOL_CONNECTION_LOST'
提前感谢您阅读我的问题:D
【问题讨论】:
-
增加服务器端的超时时间 stackoverflow.com/a/19610568/5193536 pr 使用 await 和 promises,它会等到响应到来见 stackoverflow.com/questions/44004418/…
标签: javascript mysql node.js heroku socket.io