2017-06-21 1 views
0

私はmysqlでWatson Conversationサービスを実装していますが、ファイルには疑問があります。 1つの変数ワークスペースを置いて取得すると、ユーザーの入力変数が変更されます。しかし、私はユーザーを求めるためのクエリを実装するときに、私は応答のために呼び出すクエリの値を取得するグローバル変数を配置します。コードは次のとおりです。メソッドの外部変数を取得するクエリを実行するMySQL?

if(payload.context.name!='undefined'&&payload.context.nam!='undefined'&&payload.context.nam==false){ 
    payload.context.nam=true; 
    payload.context.name=payload.input.text; 
    console.log('nam'+payload.context.nam); 
    console.log('name'+payload.context.name); var queryUsers="Select Nombre from conversation_mabe.usuarios where Nombre='"+payload.input.text+"';"; 


    con.query(queryUsers, function(err, results) { 

     for (var i in results) { 
      nombre=results[i].Nombre; 
     } 
     console.log('query'+nombre) 
     }); 
     console.log('nombre'+nombre) 
     if(nombre==payload.context.name&&nombre!='undefined'){ 
      return res.json({ 
      'output': { 
       'text': 'Su usuario es '+nombre+' en que le puedo ayudar?' 
      } 
     }); 
     } 
     } 

答えて

0

私はあなたが何をしようとしているのかよく分かりません。ユーザーの入力質問を使用してデータベース内をキーとしてルックアップするようです。

しかし、NodeJSのコールバックについて知っておくべきことは、コールスコープ内の残りのコードの後に​​起こることです。

con.query(queryUsers, function(err, results) { 

    for (var i in results) { 
     nombre=results[i].Nombre; 
    } 
    console.log('query'+nombre) 
    }); 
    console.log('nombre'+nombre) 

第2のconsole.logは、クエリコールバック関数が起動する前に発生します。 nombreで何かしたいのであれば、の中でコールバック関数を実行する必要があります。

関連する問題