ルートからリクエスト パラメータを取得しています。たとえば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
});
}
});