Javascript 从Node.js函数回调中获取MySQL结果的正确方法?
从GetAllFarms中获取MySQL查询结果并将其放入名为err和farms的变量的正确方法是什么?抱歉,正在进行快速代码尝试,并且来自不同的语言Javascript 从Node.js函数回调中获取MySQL结果的正确方法?,javascript,node.js,callback,Javascript,Node.js,Callback,从GetAllFarms中获取MySQL查询结果并将其放入名为err和farms的变量的正确方法是什么?抱歉,正在进行快速代码尝试,并且来自不同的语言 var err, farms = GetAllFarms() console.log("GetAllFarms:") console.log(farms) console.log(err) function GetAllFarms(callback) { query = db.query("SELECT * FROM farms ",
var err, farms = GetAllFarms()
console.log("GetAllFarms:")
console.log(farms)
console.log(err)
function GetAllFarms(callback) {
query = db.query("SELECT * FROM farms ", function (err, result) {
console.log("DEBUG:QUERY//");
console.log(query.sql);
// console.log(result)
if (err) {
// console.log(err)
return callback(err, null)
} else {
// console.log(result)
return callback(null, result)
}
});
// db.end()
console.log("query")
console.log(query.result)
return query
}
非常感谢您的帮助。谢谢您必须决定是通过回调还是返回提供结果。别把它们混在一起,容易混淆 回调方法 var err,farms=GetAllFarms console.logGetAllFarms: 控制台:logfarms console.logerr 函数getAllFarmScalBack{ query=db.querySELECT*FROM farms,函数错误,结果{ console.logDEBUG:QUERY/; console.logquery.sql; //console.logresult 如果出错{ //console.logerr 返回callbackerr,null }否则{ //console.logresult 返回callbacknull,结果为空 } }; //db.end console.logquery console.logquery.result } //用法 GetAllFarmserror,结果=>{ 如果错误{ //处理错误 } //过程结果 } 承诺方法 var err,farms=GetAllFarms console.logGetAllFarms: 控制台:logfarms console.logerr 函数GetAllFarms{ 返回新的Promiseresolve,rejct=>{ db.querySELECT*FROM farms,函数错误,结果{ console.logDEBUG:QUERY/; console.logquery.sql; 如果出错{ 返回拒绝错误 }否则{ 返回解析结果 } }; }; } //用法 异步=>{ const res=等待GetAllFarms; //或 GetAllFarms.then/*…*/.catch/*…*/; }
您必须决定是通过回调还是返回来提供结果。别把它们混在一起,容易混淆 回调方法 var err,farms=GetAllFarms console.logGetAllFarms: 控制台:logfarms console.logerr 函数getAllFarmScalBack{ query=db.querySELECT*FROM farms,函数错误,结果{ console.logDEBUG:QUERY/; console.logquery.sql; //console.logresult 如果出错{ //console.logerr 返回callbackerr,null }否则{ //console.logresult 返回callbacknull,结果为空 } }; //db.end console.logquery console.logquery.result } //用法 GetAllFarmserror,结果=>{ 如果错误{ //处理错误 } //过程结果 } 承诺方法 var err,farms=GetAllFarms console.logGetAllFarms: 控制台:logfarms console.logerr 函数GetAllFarms{ 返回新的Promiseresolve,rejct=>{ db.querySELECT*FROM farms,函数错误,结果{ console.logDEBUG:QUERY/; console.logquery.sql; 如果出错{ 返回拒绝错误 }否则{ 返回解析结果 } }; }; } //用法 异步=>{ const res=等待GetAllFarms; //或 GetAllFarms.then/*…*/.catch/*…*/; }
谢谢你的推荐。对于回调,如果响应为,可能会缺少什么?TypeError:callback不是一个函数您似乎没有提供callback函数作为函数的第一个参数,我在第一段代码中添加了callback方法示例,请看一看。同时确保您提供了如下可调用函数GetAllFarms=>{}而不是像GetAllFarmsSomeFunc这样的函数的结果谢谢你的推荐。对于回调,如果响应为,可能会缺少什么?TypeError:callback不是一个函数似乎您没有提供callback函数作为函数的第一个参数,我在第一段代码中添加了callback方法示例,请看一看。还要确保您提供了像GetAllFarms=>{}这样的可调用函数,而不是像GetAllFarmssomeFunc这样的函数的结果