Я пытаюсь передать несколько данных в одно представление. Я могу отправлять туда продукты, но я хотел бы также отправлять категории. Я хочу отправлять их отдельно, а не с объединением. Мне посоветовали поставить его после «тогда», но я не знаю, как это сделать.
router.get('/', function (req, res) {
models.produit.findAll(
{
include:
[
{
model: models.image, as: "images"
},
{
model: models.promotionproduit, as: "promotionproduits",
include:[{model: models.promotion, as: "Promotion"}]
}
]})
.then(data => {
res.render('home', {
data: data
});
}).catch(err => console.log(err));
});
0
H3rcul3
13 Дек 2021 в 01:51
Вы можете делать многочисленные запросы данных перед рендерингом. Нужно ли объединять категории с продуктами или наоборот? На самом деле недостаточно известно о соотношениях отображения, которые вы ищете.
– charlietfl
13 Дек 2021 в 01:55
Что такое категории и как к ним получить доступ?
– maazadeeb
13 Дек 2021 в 01:55
Что я хочу сделать, так это получить свои продукты с данными и сделать другой запрос, который вернет, например, категории с данными2, и, на мой взгляд, я мог бы сделать следующее: <% data.forEach (function (product) {%>. .. <% data.forEach (функция (категория) {%>
– H3rcul3
13 Дек 2021 в 02:00
1 ответ
Лучший ответ
Конечно, используйте async / await для создания данных, а затем передайте их представлению.
router.get('/', async(req, res) => {
// define your data var
const data = {
errors: {}
produits: [],
categories: []
}
// get produits
try {
data.produits = await models.produit.findAll({
include: [{
model: models.image,
as: "images"
},
{
model: models.promotionproduit,
as: "promotionproduits",
include: [{
model: models.promotion,
as: "Promotion"
}]
}
]
})
} catch {
data.errors.produits = 'Échec du chargement des produits.'
}
// get categories
try {
// as above, do your model...
} catch {
data.errors.categories = 'Échec du chargement des catégories.'
}
res.render('home', {
data
});
});
0
Lawrence Cherone
13 Дек 2021 в 01:59
Я новичок в этом языке, поэтому спасибо за ваш ответ, вы мне очень помогаете.
– H3rcul3
13 Дек 2021 в 02:03
Np, на ваш взгляд, просто обращайтесь через
– data.categories
, который будет массивом, который вы можете использовать forEach, если вы проверите data.errors.categories, вы можете показать ошибку и т. д. Если вы хотите, чтобы она была на один уровень выше, т.е. categories.forEach
просто сделай res.render('home', data);
, удачи
Lawrence Cherone
13 Дек 2021 в 02:06
Идеально подходит для чаевых
– H3rcul3
13 Дек 2021 в 02:09
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.