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