//-----------------------------------------------
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'track',
password : '***********',
database :'TRACK'
});
//----------------------------------------------
var net = require('net');
var HOST = '***.***.**.**';
var PORT = 8888;
net.createServer(function(sock) {
sock.on('data', function(data) {
var date = new Date();
var sDate= date.getSeconds()+":"+date.getMinutes()+":"+date.getHours()+" "+date.getDate()+"."+(date.getMonth()+1)+"."+date.getFullYear();
console.log('DATA :' + sDate + " : " + sock.remoteAddress + ': ' + data);
sock.write('You said "' + data + '"');
var sSQL="insert into `track` (`text`) values ('" + data + "')";
connection.query(sSQL, function(error, result, fields){
});
});
sock.on('close', function(data) {
// console.log('CLOSED: ' + sock.remoteAddress +' '+ sock.remotePort);
});
}).listen(PORT, HOST);
console.log('Server listening on ' + HOST +':'+ PORT);
Error: Connection lost: The server closed the connection.
at Protocol.end (*path_to_project*/node_modules/mysql/lib/protocol/Protocol.js:103:13)
at Socket.<anonymous> (*path_to_project*/node_modules/mysql/lib/Connection.js:88:28)
at Socket.emit (events.js:117:20)
at _stream_readable.js:944:16
at process._tickCallback (node.js:442:13)
const pool = mysql.createPool({
host : 'localhost',
user : 'root',
password : '',
database : 'chat'
});
pool.getConnection(function(err, connection) {
if(err) {
console.log(err);
}
let sql = "SELECT * FROM `table`";
connection.query(sql, [], function(err, results) {
connection.release(); // always put connection back in pool after last query
console.log(results);
if(err) {
console.log(err);
}
});
});
Делайте собственную функцию для запросов.
Если запрос не прошел - Пробуем подключиться к базе еще раз и затем заново выполнить запрос.
Если вторая попытка тоже не прошла - возвращаем пустой ответ, чтобы не было ошибок на стороне сервера и он не крахнулся.
let mysqldb = require("mysql");
let mysql = null;
function connect(callback=null){
console.log("MYSQL TAKE CONNECT");
mysql=mysqldb.createConnection({host: "localhost", user: "*", password: "*", database:"*"});
mysql.on('error', function(err) {
console.log("---" +err.message);
console.log("---" +err.code);
});
if(callback)setTimeout(callback,100);
}
connect();//Первичное подключение
//Функция для запросов к базе
function my_mysql_query_function(q, paramas, callback=null, reconnect=true){
//Пробуем сделать запрос
mysql.query(q,paramas,function(err,rows){
if(err){//Запрос не прошел
console.log("mysql_query failed! calling again...");
if(reconnect)//Если разрешено повторить попытку
connect(function(){ //Переподключаемся к базой
my_mysql_query_function(q,params,callback,false);//Повторяем заново с меткой false == больше не пробовать
});
else callback([]); //Если нельзя больше пробовать подключаться - возвращаем пустой массив ответа
}else{
if(callback) callback(rows); // если запрос успешный то возвращаем массив ответа
}
});
}