Javascript node.js中的函数
在我的节点应用程序中,我使用了函数。但我得到了该函数的结果:Javascript node.js中的函数,javascript,node.js,Javascript,Node.js,在我的节点应用程序中,我使用了函数。但我得到了该函数的结果: function querylevel5() { var result; connection.query("select * from levels ", function(err, row1, fields) { result= row1; /*res.writeHead(200, { 'Content-Type': 'application/json
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;
}
我的代码:
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
在结果之前返回。您必须像大多数其他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"));
});
}
及
你的问题不是很清楚。此外,在不知道连接是什么的情况下,我不知道我们应该如何帮助你。等一下,我会更新我的问题。我猜:connection.query
是节点mysql
或其他sql模块的一部分。因此,它很可能是一个异步调用,因此在执行返回结果时不会调用回调函数代码>谢谢@t.niese..我需要修改什么来实现这一点..@Subburaj看看Joachim Pileborg的答案