我正在研究一个非常简单的Web应用程序,它没有做太多的工作,但是它在一个表上连接到数据库以进行INSERT和SELECT操作。我有一个功能,我浏览了几个伟大的教程时使用,但我无法返回从SELECT查询rows
。记住我正在学习Node.JS - 我将如何显示从查询(SELECT)返回到此块的数据?函数的内部函数的返回值node.js/MySQL
app.post("/getcsv", function(req,res){
var sqlselall = "SELECT * FROM office";
var rows = handle_database(sqlselall);
res.json(rows);
res.end();
用于处理数据库连接(使用池)的功能:
function handle_database(sqlstmt){
pool.getConnection(function(err,connection){
if(err) {
res.json({"code" : 100, "status" : "Error in connection to database."});
return;
}
console.log('connected as id ' + connection.threadId);
connection.query(sqlstmt, function(err,rows){
connection.release();
if(!err){
console.log("Number of rows affected: " + rows.affectedRows);
}
});
connection.on('error', function(err) {
res.json({"code": 100, "status" : "Error in connection to database."});
return;
});
我意识到,在内部功能的rows
包含了我所需要的数据,但我在茫然,当我调用函数时如何返回它。
的可能的复制[如何返回从一个异步调用的响应?](https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-打电话) – Paul
@保罗 - 不幸的是我很难完全掌握JS中回调的概念。 – Smitty
这只是你必须通过一些教程来运行的东西。回调函数只是函数,但是你想要的肉(例如行)只在该函数的范围内。所以你需要确保你所需要的一切都在相同的范围内。 – Paul