'GetUsers'函數正在運行,並且它按預期返回正確的值。但是,res.send(用戶)在嵌套函數完成之前正在運行,因此該值未定義。我已經嘗試從嵌套函數中執行res.send(用戶),但它不能識別該函數。我也嘗試過使用返回用戶,但無法使其工作。任何幫助,將不勝感激!res.send()在嵌套函數完成之前運行,值爲
app.get('/GetUsers', function (req, res){
var url = 'mongodb://localhost:27017/users';
var users = "";
MongoClient.connect(url, function (err, db) {
if (err) {
console.log('Unable to connect to the mongoDB server. Error:', err);
} else {
console.log('Connection established to', url);
// Get the documents collection
var collection = db.collection('users');
// Get some users
collection.find().toArray(function (err, res) {
if (err) {
console.log(err);
} else {
console.log('Got Information from db.');
}
//Close connection
db.close();
console.log('db closed.');
users = res;
console.log(users);
});
}
});
res.send(users);
});
的可能的複製[如何返回從一個異步調用的響應?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-呼叫) –