2017-05-12 2 views
0

私はNode JSを初めて使っています。私はデータベースを照会しようとしていますが、単にsocket.ioを使ってフロントエンドにデータを送信しますが、断続的にデータを送信している/フロントエンドにデータを送信していないことがわかりました。私は、クエリがまだ完了しておらず、続行する前に結果がアクセス可能になるのを待っているのだろうかと疑問に思っていたため、この背後に理由があると仮定しています。私は、以下のようにソケット内のデータベースにアクセスするために、NPMのMySQLを使用していNode.JS - 機能を実行する前にチェック結果があります

:ここ

var mysql = require('mysql'); 

var connection = mysql.createConnection(
    { 
     host  : 'localhost', 
     user  : 'root', 
     password : '', 
     database : 'db' 
    } 
); 

は私のクエリです:

connection.query(queryString, function(err, result, fields){ 
     if(err) throw err; 
     socket.emit('emitFunction', result); 
    }); 
+0

私は個人的にはフロントエンドではなくノードでこのようなことをしています。 –

+0

* "これは、まだクエリがまだ完了していないため、この理由があると仮定しています。" *いいえ、そうではありません。 'function'(コールバック)は、結果がそこに来るまで*起動しません。これが、単に '' socket.emit(...) 'がコールバック関数の中にある理由の全体です。結果をソケットに書き込む前にログに記録します。いくつかのタイムスタンプも記録します。ログ、ログ、ログ。 –

答えて

1

クエリはそれほど結果行われた後にのみ呼び出されるコールバックコールバック関数の中で利用できるはずです。エラーと結果の両方を記録して、何が起こったかを確認してください。

+0

私は参照してください。私はちょうどコールバックを作成し、それはこれまで有望視されています。私はそれが遅れているように私がどのように乗っているかを教えてくれます。アドバイスをいただきありがとうございます。 –

関連する問題