我正在从我的路由中获取一个请求参数,例如mydomain.com/topic/animals
whererequestParam = req.params.topicName
和在这种情况下,animals
.
我遍历一个包含所有可能主题的对象,然后如果找到topicName
与 匹配的requestParam
,那么我想执行对数据库的调用以返回该主题的所有集合。
问题是它正在同步执行,因为它总是会执行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
});
}
});