0

socket.ioを使用してMySQLデータベースに接続するNode.jsスクリプトを開発しました。しかし、チタニウムクライアントアプリケーションを使用してサーバーに接続しようとすると、作成した接続メソッドを渡すだけです。エラーメッセージやメッセージは一切なく、ソケットを閉じるだけでスクリプトを呼び出すことができます。誰かが私の問題が何であるか理解していますか?参考までに、私のコードは次のとおりです。私はこのコードで間違ったつもりだところ、誰かが私に言うことができればNode.jsスクリプトを使用してsocket.ioからMySQLデータベースに接続する

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のを使用して、このスクリプトで作業を続けてきたが、私は実際に接続していくつかの困難に遭遇してきましたサーバー。私の接続スクリプトはここに添付されています:

exports.CallStoredProcedureSync = function (test) { 
test.expect(12); 

var conn; 
var result; 
var row; 
var rows; 
var host = "localhost"; 
var user = "test"; 
var password = **********; 
var database = *******; 

var sockets_list = []; 
conn = mysql.createConnectionSync(); 
conn.connectSync(host, user, password, database, 0, 0, conn.CLIENT_MULTI_RESULTS); 

if (!conn.connectedSync()) 
{ 
sys.puts("Connection error " + conn.connectErrno + ": " + conn.connectError); 
socket.write("Connection error " + conn.connectErrno + ": " + conn.connectError); 
process.exit(1); 
} 
// More code here 
} 

しかし、私は実際に接続後に定義されたコードにアクセスすることはできません。誰かが私がどこに間違っているか教えてもらえれば、私はとても感謝しています。記録のために、ここでnode-mysql-libmysqlclientのテストコードを使用しています:https://github.com/Sannis/node-mysql-libmysqlclient/blob/master/tests/complex/test-call-stored-procedure.js。ありがとう。ここではジャイロキャプテン

+0

これはhttp://nodejs.org/ – Prasanth

+0

感謝を助けることを願っています。私は既にNode.jsのウェブサイトを見ており、node-mysqlパッケージをnode-mysql-libmysqlclientパッケージに置き換えて使用を中止することに決めました。 –

答えて

1

node-mysqlclientを使用して、あなたの問題での私の試みです

よろしく

、それはDBに接続し、選択したテーブル内のすべてを引き戻し、それはソケットにダミーの文字列を書き出します。 socket.ioを見てもいいかもしれません...あなたの質問でそれを言及しましたが、このアプリでは使用されていませんでした。

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); 

関連する問題