how often does the letter е occur in:
q: отфильтровать по категориям в express + mondodb req.body.categories приходит массив выбранных категорий например [{name: vue}, {name: react}...] как можно найти и вывести все посты с такими категориями? в моём коде я думал обойти циклом foreach но у меня появляеться ошибка в консоли syntaxerror: await is only valid in async function
exports.filter = async function(req, res) {
try {
if (req.body.categories.length) {
  let postsarr = []
  req.body.categories.foreach(item => {
    const post = await post.find({ category: item.name });
    if (post) {
      postsarr.push(post)
    }
  })

  res.status(200).send(postsarr);
}
} catch (error) {
    res.status(500).send(error);
}

};

a: это ошибка отображается из-за того, что у вас await находится не в async функции:
req.body.categories.foreach(item => { // тут функция не async

если вы хотите по одной категории запрашивать из бд, можно сделать что-то такое:
for (let item of req.body.categories) {
    const post = await post.find({ category: item.name });
    if (post) {
        postsarr.push(post);
    }
}

но можно сделать вообще по другому, запрашивать все нужную информацию сразу:
if (req.body.categories.length) {
    let names = req.body.categories.map(category => category.name);
    let postsarr = await post.find({ category: { $in: names } });

    res.status(200).send(postsarr);
}


user
There are twenty "е"s.
assistant