0
對於我的問題,可能有一個簡單的解決方案,但似乎無法解決問題。使用Firebase獲取數據時,何時調用node.js中的next()
問題是:我正在爲我創建的應用程序使用node.js和express.js框架。我也使用Firebase.js作爲我的數據庫。我開始瞭解中間件,以及在將響應發送給客戶端之前,我們如何使用它來獲取數據。
我的問題是但是,如果我通過火力地堡子節點要循環,我想用自己的datasnap.forEach()像這樣:
var scoresRef = db.ref("scores");
scoresRef.orderByValue().on("value", function(snapshot) {
snapshot.forEach(function(data) {
console.log("The " + data.key + " dinosaur's score is " + data.val());
});
});
所以可以說我有一個模塊,應該讓所有的恐龍價值,我可以這樣做:
var dinoModule = {};
dinoModule.getDinosaurs = function(req, res, next){
var dinoRef = firebase.database().ref("dinosaurs");
dinoRef.orderByValue().on('value', function(snapshot){
snapshot.forEach(function(data){
// do something with the data here
// Calling next() here is wrong
});
// Should I call next() here?
});
}
但是,在我應該叫下一個功能,使服務器不制止?
你的答案有點不清楚......是的,承諾可以解決這個問題,但是......你的示例代碼沒有使用任何承諾。 –
我們在這裏使用異步,這也給代碼中的阻塞,從而達到目的。 –