我在Node,Express和MySQL中編寫基本的Web應用程序。它只是一個基本的網站,用戶可以創建一個帳戶,查看其他人的帳戶,並在他們的個人資料上發佈信息,並且我正在創建它來學習Node和javascript。 因此,我正在創建用戶列表,並且創建了一個很好的函數來返回數據庫中的所有用戶。下面是代碼:NodeJS/Javascript函數返回undefined
function getAllUsers() {
var query = " \
SELECT \
id, username, email, password \
FROM \
users \
";
connection.query(query, function(err, rows) {
if (err) throw err;
return rows;
});
}
現在,我在這裏使用這個功能:
router.get('/list', function(req, res) {
var users;
users = getAllUsers();
res.render('user/list', {'title': 'Users', 'users': users});
});
但用戶是不確定的。爲什麼是這樣?
我敢肯定,MySQL連接工作正常,但這裏是我如何連接它,萬一它派上用場:
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'firstnodeapp'
});
connection.connect();
感謝
---編輯 - - 我想我也應該提到,行是在getAllUsers()函數中定義的,但是一旦我返回它就不再定義。
'getAllUsers'是異步的,如何返回值? [試試這個](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call?noredirect=1&lq=1) –
掛上...我不認爲這應該被標記爲重複。我的問題不是「如何從異步函數返回」...雖然答案是相關的,但問題不是... – IHazza