我正在研究一個非常簡單的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