我正在使用 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?'
}
});
}
}
最佳答案
我不太明白你想做什么。看起来您正在使用用户输入的问题作为键在数据库中查找。
但是,关于 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 执行某些操作,则需要在回调函数内执行此操作。
关于mysql - 在方法外部获取变量执行查询MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44684919/