app.get('/dbpage', function(req, res){
Chapters.find({}, function(err, allChapters){
if (err){
console.info(err);
}else{
res.render('dbpage', {chapters: allChapters});
}
});
});
Приведенный выше код - это небольшая часть моего проекта, и он отлично работает. Chapters - это название коллекции, которая является частью моей базы данных books. Но у меня есть другая коллекция (из той же базы данных), которую я пытаюсь пройти по тому же маршруту /dbpage. Как бы добавить эту другую коллекцию в приведенный выше код? Таким образом, я могу получить доступ к информации, хранящейся в этой другой коллекции, в маршруте /dbpage.
Я видел некоторые другие ответы, которые более или менее подходят для того, что я пытаюсь сделать, но все они видели излишки для такой простой вещи. Какие-либо предложения? Спасибо!!





Вы не можете вызвать одно и то же имя маршрута. Если вы используете повторяющиеся определения маршрута, приоритет будет иметь тот, который указан первым. Одно и то же определение маршрута разрешено только в том случае, если вы используете другой HTTP-глагол ... например, POST, PUT, PATCH и т. д.
Таким образом, если вы действительно хотите использовать один и тот же маршрут, вам необходимо передать параметры запроса, а затем добавить в маршрут условную логику, например:
app.get('/dbpage', function(req, res){
let {someQueryParam} = req.query;
if (someQueryParam === 'someSpecialValue'){
//... do something different...
} else {
Chapters.find({}, function(err, allChapters){
if (err){
console.info(err);
}else{
res.render('dbpage', {chapters: allChapters});
}
}
});
});
И вы могли бы вызвать его с какой-либо конечной точкой, например:
yourDomain.com:3000/dbPage?someQueryParam = "someSpecialValue"
Честно говоря, я бы посоветовал не вводить условную логику, когда это вообще возможно. Если возможно, просто настройте другую конечную точку.
Я понимаю, о чем вы говорите, но все еще немного сбит с толку. Я думаю, что получить доступ к обеим коллекциям может быть очень просто, но не так, как в моем вопросе, это просто вопрос изменения всего
app.get. Можно ли сделать что-то вродеbooks.find({ChaptersA, ChaptersB}, function(err, allChaptersA, allChaptersB)...? Поскольку это всего лишь один главный параметр: «книги»