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);
}
};
Это ошибка отображается из-за того, что у вас 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);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
на странице есть четыре слайдера, инициализирую как два разных slider1 и slider2Слайдеры под классом slider1 и slider2 по два слайдера в каждом классе,...
Есть select нужно с помощью перебора массива вывести ключ(red,blue,green) к которому относится значение select, то-есть если мы выбираем в select "Академгородок"...
Проблема вот в чем, сделал проект пытаюсь его скомпилировать а он не компилируется, подскажите пожалуйста как это поправить я совсем слабый...
Подскажите где ошибка в коде - строкаvar SearchControl = new ymapscontrol