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的答案