0
我從我的路由中獲取請求參數例如mydomain.com/topic/animals
其中requestParam = req.params.topicName
,在這種情況下,animals
。通過包含所有可能的話題對象嘗試異步執行在node.js中使用MongoDB查找時遇到問題
我循環,然後如果我找到相匹配的requestParam
,然後我要執行到數據庫的調用返回的所有集合爲話題topicName
。
問題是它正在同步執行,因爲它總是會執行else
子句,例如,
if (requestParam === topicName) {
// fetch submission
} else {
// return 404
}
所以它總是返回404,但如果我擺脫else
條款這裏,那麼它的工作原理。我看着下劃線的_.after()
,但不能得到正常的(而不是工作,即使知道這是什麼,我應該使用
我的代碼:?
_.each(topics, function(key, topic) {
var topicName = key['topicName'],
if (requestParam === topicName) {
Submission.getTopicSubmissions({ topicName : topicName }, function(err, submissions) {
if (err) {
res.redirect('/');
} else if (submissions) {
res.render('topic', {
submissions: submissions
});
} else {
res.redirect('/topics');
}
});
} else {
res.render('errors/404', {
title: 'Page Not Found -',
status: 404,
url: req.url
});
}
});
啊哈......好吧,這需要一些習慣,但我現在終於可以開始了。這完全工作,順便說一句。謝謝! :d – 2013-03-08 11:20:50