Новичок работает над моим первым проектом здесь.
У меня есть 2 схемы и модели Mongoose, содержащие categories
и products
. Я вложил products
в модель categories
.
С помощью Node и Express я отправляю все категории на свою страницу. Используя EJS и цикл for, я могу сделать выпадающий (выбрать) список со всеми именами категорий.
Теперь мне не удается составить список со всеми продуктами, содержащимися в выбранных категориях.
Я прошел путь от попытки отфильтровать его внутри тегов EJS до объединения внешнего скрипта и отправки запроса POST AJAX с выбранными данными. Ничего не сработало.
The schemas
const productSchema = new mongoose.Schema ({
image: String,
name: {type: String, required: true},
description: {type: String, required: true},
category: {type: String, required: true},
price: {type: Number, required: true}
});
const categorySchema = new mongoose.Schema ({
name: {type: String, required: true},
products: [{
type: mongoose.Schema.Types.ObjectId,
ref: "Product"
}]
});
The route
app.get("/proposals/create", (req, res) => {
Category.find({}).populate("products").exec((err, cats) => {
if(err) {
console.log(err);
} else {
res.render("createproposal", {cats: cats});
}
});
});
The loop
<select id="catDropdown" class="ui fluid dropdown">
<option value="">Category</option>
<% for(i = 0; i < cats.length; i++) { %>
<option><%= cats[i].name %></option>
<% }; %>
</select>