Node.js脚本,通过socket.io连接到MySQL数据库

Node.js脚本,通过socket.io连接到MySQL数据库,mysql,node.js,socket.io,appcelerator-mobile,titanium-mobile,Mysql,Node.js,Socket.io,Appcelerator Mobile,Titanium Mobile,我开发了一个Node.js脚本,使用socket.io连接到MySQL数据库。然而,当我尝试使用我的Tianium客户端应用程序连接到服务器时,它只是传递了我创建的连接方法;没有错误消息或任何类型的消息,套接字只是关闭而不调用脚本。有人知道我的问题是什么吗。作为参考,我的代码是: var app = require('net') , fs = require('fs') , Client = require('mysql').Client , clie

我开发了一个Node.js脚本,使用socket.io连接到MySQL数据库。然而,当我尝试使用我的Tianium客户端应用程序连接到服务器时,它只是传递了我创建的连接方法;没有错误消息或任何类型的消息,套接字只是关闭而不调用脚本。有人知道我的问题是什么吗。作为参考,我的代码是:

    var app = require('net')
      , fs = require('fs')
      , Client = require('mysql').Client
      , client = new Client();  

    client.user = 'user';
    client.password = 'password'; // Obviously this is not my real password

    var sockets_list = [];

    var server = app.createServer(function (socket) {
      sockets_list.push(socket);
      socket.write("Hello Client\r\n");

      socket.on('data', function(data) {
        console.log(data);
        for (var i = 0; i < sockets_list.length; i++) {
            sockets_list[i].write(data);
        }


      });

      client.connect(function(err, results) {
        if (err) {
            console.log("ERROR: " + err.message);
            socket.write("NO!\r\n");
            throw err;
        }
        console.log("connected.");
        socket.write("Got through here\r\n");
        clientConnected(client);
      });

      socket.on('end', function() {
        var i = sockets_list.indexOf(socket);
        sockets_list.splice(i, 1);
      });


    });



    server.listen(8080);

    clientConnected = function(client)
    {
        client.query('USE db', function(err, results) {
            if (err) {
                console.log("ERROR: " + err.message);
                throw err;
            }
        });
    };
但是,我实际上无法访问连接后定义的任何代码。如果有人能告诉我哪里出了问题,我将不胜感激。作为记录,我在这里使用节点mysql libmysqlclient的测试代码:。谢谢

问候


陀螺机长

这是我试图解决您的问题的方法,它连接到数据库并将所选表格中的所有内容收回,然后将一个虚拟字符串写入套接字。你可能还想看看。。。您在问题中提到了它,但此应用程序中未使用它

var app = require('net')
  , mysql = require('mysql-libmysqlclient')
  , conn = mysql.createConnectionSync();


conn.connectSync('localhost', 'user', 'password', 'database');
conn.setCharsetSync('utf8');

var sockets_list = [];

var server = app.createServer(function (socket) {
  sockets_list.push(socket);
  socket.write("Hello Client\r\n");

  socket.on('data', function(data) {
    console.log(data);
    for (var i = 0; i < sockets_list.length; i++) {
      sockets_list[i].write(data);
    }
  });

  clientConnected = function() {
    conn.query('SELECT * FROM table', function(err, results) {
      if (err)
        throw err;
      else {
        results.fetchAll(function (err, rows) {
        if (err)
          throw err;
        // print out database info
        console.log(rows);
        socket.write('socket writes here');
      });
      }
    });
  };

  clientConnected();

  socket.on('end', function() {
    var i = sockets_list.indexOf(socket);
      sockets_list.splice(i, 1);
  });
});

server.listen(8080);
var-app=require('net'))
,mysql=require('mysql-libmysqlclient')
,conn=mysql.createConnectionSync();
conn.connectSync('localhost','user','password','database');
conn.setCharsetSync('utf8');
var sockets_list=[];
var server=app.createServer(函数(套接字){
插座列表。按下(插座);
socket.write(“Hello客户端\r\n”);
socket.on('data',函数(data){
控制台日志(数据);
对于(变量i=0;i

~

希望这会有所帮助,谢谢。我已经看过Node.js的网站,我决定停止使用Node-mysql包,转而使用Node-mysql-libmysqlclient包。
var app = require('net')
  , mysql = require('mysql-libmysqlclient')
  , conn = mysql.createConnectionSync();


conn.connectSync('localhost', 'user', 'password', 'database');
conn.setCharsetSync('utf8');

var sockets_list = [];

var server = app.createServer(function (socket) {
  sockets_list.push(socket);
  socket.write("Hello Client\r\n");

  socket.on('data', function(data) {
    console.log(data);
    for (var i = 0; i < sockets_list.length; i++) {
      sockets_list[i].write(data);
    }
  });

  clientConnected = function() {
    conn.query('SELECT * FROM table', function(err, results) {
      if (err)
        throw err;
      else {
        results.fetchAll(function (err, rows) {
        if (err)
          throw err;
        // print out database info
        console.log(rows);
        socket.write('socket writes here');
      });
      }
    });
  };

  clientConnected();

  socket.on('end', function() {
    var i = sockets_list.indexOf(socket);
      sockets_list.splice(i, 1);
  });
});

server.listen(8080);