我正在用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?'
}
});
}
}
答案 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做一些事情,你需要在里面回调函数。