einaros/ws上に構築されたノード ws サーバーを使用しています。そのサーバーはデータベースにクエリを送信する必要があります。そのために私はfelixge/node-mysqlを使用しています。
ユーザーがサーバーに接続するとき、クライアントがまだデータベースに存在するかどうかを確認する必要があります。
興味深いコードは次のとおりです。
console.log("client-liste ist leer");
var query = "SELECT name FROM spieler WHERE name='"+id+"' AND passwort='"+passwort+"'";
var result = queryToDatabase(query);
console.log(getTime() + "DB-Result Abfrage: " + result);
そして、クエリが実行されるコード:
var mysql = require('mysql');
var mysqlConnection = mysql.createConnection({
host: dbHost,
user: dbUser,
password: dbPassword,
});
function queryToDatabase(anfrage) {
mysqlConnection.connect();
mysqlConnection.query("USE " + db, function(err, rows, fields) {
if (err) throw err;
});
mysqlConnection.query(anfrage, function(err, rows, fields) {
if (err) throw err;
console.log("rows as String - " + JSON.stringify(rows));
return rows;
});
mysqlConnection.end();
}
コンソールのログは次のとおりです。
client-listeist leer
3.8.2012 - 15:29:0 - DB-Result Abfrage: 未定義の
行が文字列として - [{"name":"lukas"}]
関数が未定義を返す理由を誰かが理解していますか? また、単純な setTimout で Database-Connection が終了するのを待ってみましたが、何も変わりませんでした。