node.js中的函数
Function in node.js
在我的节点应用程序中,我使用的是函数。但我得到了这个函数的结果:
我的代码:
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);
});
}
问题是结果是在回调中传递的(即异步),但您正在同步调用方法并打印结果,因此在您尝试打印结果时,结果实际上还没有返回。
相关文章:
- 为什么我的控制器没有启动函数.js脚本
- 在函数js中传递变量
- 如何在单独的文件中调用函数 js.
- 在铯中调用函数.js当事件被尝试时
- 只有setTimeout执行函数.JS
- 为什么图像选择器程序中的这个函数 js 不起作用
- 获取邮件中的信息.php从函数.js解析为manage.html
- 如何从应用程序中调用JS函数.js在Rails4视图中
- Uncatch TypeError: obj.attr 不是函数 JS
- 从 C++ 节点调用 JavaScript 函数.js扩展
- 调用 Backbone 内部的外部函数.js的视图初始化方法
- 如何使用 Scala 创建 JavaScript 函数.js
- 使用带有下划线循环的回调函数.js骨干.js项目不起作用
- 获取字段值的函数-JS
- 函数js不能递归调用自己的函数
- 在函数JS中创建带有地理代码的标记
- 循环内部的函数(js/jquery)
- 我需要帮助将此代码添加到jQuery函数.js文件中
- 未捕获类型:未定义不是函数JS错误
- 停止多个内联函数JS的事件传播