передача нескольких коллекций в один и тот же экспресс-маршрут - PullRequest
0 голосов
/ 24 ноября 2018
app.get('/dbpage', function(req, res){            
        Chapters.find({}, function(err, allChapters){
        if(err){
            console.log(err);
        }else{
            res.render('dbpage', {chapters: allChapters});
        }
    });
});

Код выше - небольшая часть моего проекта, и он работает нормально.Chapters - это имя коллекции, которая является частью моей базы данных books.Но у меня есть другая коллекция (из той же базы данных), которую я пытаюсь пройти по тому же маршруту /dbpage.Как добавить эту другую коллекцию в код выше?Таким образом, я могу получить доступ к информации, хранящейся в этой другой коллекции, по маршруту /dbpage.

Я видел некоторые другие ответы, которые более или менее подходят для того, что я пытаюсь сделать, но они все видели излишнее за такую ​​простую вещь.Какие-либо предложения?Спасибо !!

1 Ответ

0 голосов
/ 24 ноября 2018

Вы не можете вызвать одно и то же имя маршрута.Если вы используете повторяющиеся определения маршрутов, приоритет будет иметь тот, который указан первым.Единственное время, когда разрешено одно и то же определение маршрута, это если вы используете другой 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.log(err);
          }else{
              res.render('dbpage', {chapters: allChapters});
          }
        }
    });
});

И вы бы вызвали его с некоторой конечной точкой, такой как:

yourDomain.com:3000/dbPage?someQueryParam="someSpecialValue"

Честно, хотя яне советую вводить условную логику, когда это вообще возможно.Если возможно, просто настройте другую конечную точку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...