Я пишу своего рода интерфейс между сервером чата TCP и сервером SQL, и во время работы над частью, где пользователь отправляет значение и ему присваивается имя, извлеченное из строки в этой БД с этим значением. При запросе этой БД со значением из оболочки telnet я не могу получить никаких результатов от БД. Но я могу, когда я выполняю тот же запрос в adminer / MySQL @ BASH и т.д ...
Я думаю, что это сводится к проблеме кодирования. Будучи довольно нудистским к узлу, я действительно не знаю, что делать. У меня довольно хороший опыт работы с JavaScript, но не с узлом.
код
function setCliNameOrKick(client, key){
key = String(key).replace(/\n\r\b\\\s/gi, "");
var q = "SELECT username FROM webusers WHERE lic = \'"+String(key).toString()+"\'; --";
console.log(key);
query(q);
cli.query(q, function cb(e, r, f){
if(client != null){
console.log(r);
if(r.length >= 1){
client.name = r['username'];
}else{
client.stream.end();
}
}else{
console.log("Was Passed A Null Client!");
}
});
}
Это исходит от инструмента запросов БД
Он принимает входные данные из строки, отправленной клиентом по соединению, вместе с объектом, представляющим клиента
stream.addListener("data", function(data){
if(client.name == null){
data = String(data).replace(new RegExp("[\n]+", "g"), "");
cNameBuff = cNameBuff + data;
if(cNameBuff.length > 1){ //Min Length
//client.name = cNameB;
db.set(client, cNameBuff);
onAuth(client);
}
return;
}
data = String(data);
if(data.length >= 2){
srv.procChat(client, data);
}
});