Node JS:我的SQL回调函数返回数据到服务器或广播到房间id



Node JS:我的SQL回调函数返回数据到服务器或广播到房间id

1] Server.js

var express     = require('express');
var app     = express();
var http    = require('http');
var server  = http.createServer(app);
var io      = require('socket.io').listen(server, {log:false });
var dbAction    = require('./dbAction');
var yql     = require('yql');
server.listen(config.port);
app.get('/', function (req, res) {
    res.sendfile(__dirname + '/public/index.html');
});
io.sockets.on('connection', function(socket)
{
   socket.on('userAuthentication', function(loginDetails){
    var test = dbAction.userAuthentication(loginDetails);
    console.log(test);
    console.log("---------------");
   });
});

2] dbAction.js

var mysql = require('mysql');
var userInfo = {};
var connection = "";
exports.userAuthentication = function(info)
{ 
    userInfo.unm = (info.unm).trim();
    userInfo.pwd = (info.pwd).trim();
    connection = mysql.createConnection({host: "localhost", user: "root", password: ""});
    connection.query('USE user');
    connection.query("SELECT * FROM users WHERE username ='"+ userInfo.unm +"'", function(err, results)
    {
        if (err) { console.log(err); }
        else if(results.length > 0)
        {
            var key = (results[0]['key']).trim();
            if(key != ""){
                var select_sql = "another query";
                connection.query(select_sql, function(err, results_1)
                {
                    if (err) { console.log(err); }
                    else if(results_1.length > 0)
                    {
                        console.log( results_1);
                    }
                });
            }
        }
    }); 
}

查询:

1]我想要"result_1"返回到server.js "userAuthentication"在测试变量。

2]否则"result_1"将广播到特定房间。

添加套接字作为参数,然后您可以使用套接字对象在房间中发出。你也可以添加io对象,但我认为最好只给出套接字,例如,如果你想广播。

server.js

var test = dbAction.userAuthentication(loginDetails,socket);//NEW

dbAction.js

exports.userAuthentication = function(info,socket)//NEW
{ 
userInfo.unm = (info.unm).trim();
userInfo.pwd = (info.pwd).trim();
connection = mysql.createConnection({host: "localhost", user: "root", password: ""});
connection.query('USE user');
connection.query("SELECT * FROM users WHERE username ='"+ userInfo.unm +"'", function(err, results)
{
    if (err) { console.log(err); }
    else if(results.length > 0)
    {
        var key = (results[0]['key']).trim();
        if(key != ""){
            var select_sql = "another query";
            connection.query(select_sql, function(err, results_1)
            {
                if (err) { console.log(err); }
                else if(results_1.length > 0)
                {
                    console.log( results_1);
                    socket.to(ROOM_ID).emit('result', results_1);//NEW
                }
            });
        }
    }
}); 

}

最新更新