Поиск одной коллекции несколько раз за один звонок - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть массив с несколькими значениями, которые нужно использовать в качестве запросов для поиска в коллекции.Я не уверен в способе сделать это, используя один маршрут.например:

router.get('/', ensureAuthenticated, (req, res) => {
let ArrayOfIds = [id1, id2, id3]

Movie.find({user: req.user.id}).then(items => {
//Something along this lines 
 items.subscriptions.forEach(subscription => {
 Movie.find({user: subscription})
  //This wont work beacuse of the callback promise
   .then(movies => {
    items.push(movies)
 })
 })
res.render('index/home',
 {pageName: 'Movies', items: items})
 .catch(err => console.log(err));
});
})

Я хочу найти одну и ту же коллекцию (фильм) для каждого идентификатора и добавить ее в объект items.Выполнение этого с циклом for, кажется, создает ошибку заголовка набора.Есть идеи?

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Может быть, если я правильно понимаю, вы можете запросить коллекцию со списком идентификаторов в вашем случае ArrayOfIds в запросе Монго.Проверьте $ в запросе mongoDB .К вашему сведению: создайте некоторый индекс в этом поле.

0 голосов
/ 24 декабря 2018

Этот ответ S / O должен содержать ваш ответ ...

Ошибка: невозможно установить заголовки после их отправки клиенту

Из ответа:

Ошибка «Ошибка: невозможно установить заголовки после их отправки».означает, что вы уже в состоянии Body или Finished, но некоторые функции пытались установить заголовок или statusCode.Когда вы видите эту ошибку, попробуйте найти все, что пытается отправить заголовок после того, как часть тела уже написана.Например, найдите обратные вызовы, которые были вызваны дважды, или любую ошибку, которая произошла после отправки тела.

В вашем случае вы вызвали функцию res.redirect (), в результате которой ответ стал завершенным.Затем ваш код выдал ошибку (res.req имеет значение null).и поскольку ошибка произошла в вашей действительной функции (req, res, next) (не в обратном вызове), Connect смог ее перехватить и попытался отправить страницу с ошибкой 500.Но так как заголовки уже были отправлены, setHeader Node.js выдал ошибку, которую вы видели.

Вполне вероятно, что вы вызываете res.redirect () несколько раз, если вы реализуете for-цикл.

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