获取变量外部方法执行查询MySQL?

时间:2017-06-21 19:38:30

标签: mysql node.js ibm-cloud watson-conversation

我正在用mysql实现Watson Conversation服务,但我对app.js文件有疑问。当我放置一个变量工作区并获得它时,我更改了用户输入的变量。但是,当我实现查询以寻找用户时,我放置一个全局变量来获取我为响应调用的查询的值。这是代码:

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?'
           }
         });
        }
      }

1 个答案:

答案 0 :(得分: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)

第二个console.log将在触发查询回调函数之前发生。如果你想用nombre做一些事情,你需要在里面回调函数。