JSFiddle - React, Tailwind, and code Playground
HTML
1) First the connect socket runs <b>line 43</b> <br/>
2) When the socket emits true the user searches for an ID.<b>line 59</b> <br/>
3) Error occurs at line 64 :<br/> <b>Error: Cannot enqueue Query after invoking quit.</b> <br/><br/>
4) A secondary error also displays for <b> Line 68</b>: <br/><b> db error { [Error: Cannot enqueue Quit after invoking quit.] code: 'PROTOCOL_ENQUEUE_AFTER_QUIT', fatal: false }
</b>
JavaScript
var http = require('http'),
fs = require('fs'),
sanitize = require('validator').sanitize,
mysql = require('mysql');
var db_config = {
host: '127.0.0.1',
user: 'testDB',
password: '[hidden]',
database: '[hidden]'
};
var clients = {},
connection;
connection = mysql.createConnection(db_config);
connection.connect(function(err) {
if(err) {
console.log('error when connecting to db:', err);
}
});
var app = http.createServer(function (request, response) {
fs.readFile(__dirname + 'client.html', 'utf-8', function (error, data) {
if (error) {
response.writeHead(500, {'Content-Type': 'text/html'});
response.write(error.toString());
} else {
response.writeHead(200, {'Content-Type': 'text/html'});
response.write(data);
}
response.end();
});
var io = require('socket.io').listen(app);
//connection
io.sockets.on('connection', function(socket) {
//socket-connect
socket.on('connect', function(data,callBack){
var session = sanitize(data['session']).escape();
var query = connection.query('SELECT uid FROM sessions WHERE id = ?', [session],
function(err,results){
if(err){
console.log('Oh No! '+err);
}else{
io.sockets.socket(socket.id).emit('connectConfirm',{data : true});
}
connection.end();
});
});
//---//
//socket-searchByID
socket.on('searchByID', function(data,callBack) {
var userId = sanitize(data["userID"]).escape();
var query = connection.query('SELECT name FROM users U WHERE U.uid = ?', [userId],
function(err,results){
if(err){
console.log('Oh No! '+err);
} else if(results.length == 1){
io.sockets.emit("name",{ name: results[0].name});
}
...