[英]Function in node.js
在我的节点应用程序中我正在使用function.But我得到该函数的结果:
我的代码:
var connection = mysql.createConnection({
host : 'localhost',
user : 'xxxx',
password : 'xxxxx',
database : 'xxxxxxx',
debug : true,
})
connection.connect(function(err) {
if ( !err ) {
console.log("Connected to MySQL");
} else if ( err ) {
console.log(err);
}
});
if(level5 == undefined)
{
var result1=querylevel5();
console.log("vvvvvvvvv="+result1)
res.writeHead(200, { 'Content-Type': 'application/json'});
res.end(JSON.stringify(result1,null,"\n"));
}
我的功能:
function querylevel5()
{
var result;
connection.query("select * from levels ", function(err, row1, fields) {
result= row1;
/*res.writeHead(200, { 'Content-Type': 'application/json'});
res.end(JSON.stringify(row1,null,"\n"));*/
});
return result;
}
我想在我的调用函数中获取row1结果。但是它的打印“未定义”..我是这个node.js的新手。所以请帮我解决这个问题。谢谢提前..
最有可能的问题是函数querylevel5
在result
之前立即返回。 您必须像大多数其他node.js框架一样,例如connection.query
函数,即使用回调:
if(level5 == undefined) {
querylevel5(function(result) {
console.log("vvvvvvvvv="+result)
res.writeHead(200, { 'Content-Type': 'application/json'});
res.end(JSON.stringify(result,null,"\n"));
});
}
和
function querylevel5(callback) {
connection.query("select * from levels ", function(err, row1, fields) {
callback(row1);
});
}
问题是结果是在回调中传递的(即异步),但是您同步调用该方法并打印结果 - 因此在您尝试打印时实际上并未返回结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.