Показать сообщение отдельно
  #1 (permalink)  
Старый 29.07.2016, 07:55
Новичок на форуме
Отправить личное сообщение для thevalakas Посмотреть профиль Найти все сообщения от thevalakas
 
Регистрация: 29.07.2016
Сообщений: 7

Функция не возвращает true/false
Здравствуйте, вот код:
var io = require('socket.io').listen(8080);
var sql = require('mysql');

function sqlstart() {
    var sqlcon = sql.createConnection({
        host: 'localhost',
        user: 'socket',
        password: 'socket',
        database: 'socket'
    });

    return sqlcon;
}

function isauth(value) {
    var sqlcon = sqlstart();
    sqlcon.connect();
    sqlcon.query("SELECT * FROM users WHERE sess='"+ value +"'", function (err, rows, fields) {
        if(err) throw err;
        if(rows.length>0) {
            return true;
        }else{
            return false;
        }
    });
    sqlcon.end();
}

io.set('log level', 1);

io.sockets.on('connection', function (socket) {
    var ID = (socket.id).toString().substr(0, 5);

    socket.json.send({'event': 'connect', 'name': ID});

    socket.on('message', function (msn) {

        if(msn.event === "auth") {
            if(isauth(msn.sess)) {
                socket.json.send({'event': 'authSuccess'});
            }else{
                socket.json.send({'event': 'authError', 'param': 'wrong sess'});
            }
        }

    });

});


Функция isauth возвращает undefined хотя должна true/false.

function isauth(value) {
    var sqlcon = sqlstart();
    sqlcon.connect();
    sqlcon.query("SELECT * FROM users WHERE sess='"+ value +"'", function (err, rows, fields) {
        if(err) throw err;
        if(rows.length>0) {
            return true;
        }else{
            return false;
        }
    });
    sqlcon.end();
}


Подскажите что не так.

Последний раз редактировалось thevalakas, 29.07.2016 в 08:01.
Ответить с цитированием