Когда пользователь отправляет форму на моем сайте, я хочу показать им три элемента: элемент для завтрака, элемент для обеда и элемент для ужина.Чтобы сделать это, я подумал, что мне придется по отдельности выполнить db.collection («recipes»). FindOne, а затем вернуть результат этого кода в переменную, которую я мог бы затем передать в EJS, используя res.render («food-plan»).", {завтрак: завтрак});
Однако оказывается, что переменные, собранные из запроса findOne, должны быть переданы в EJS до закрытия запроса findOne, иначе вы не сможете получить к ним доступ.Теперь я застрял с чем-то вроде этого:
var breakfast;
MongoClient.connect('mongodb://localhost', function (err, client) {
if (err) throw err;
var db = client.db('food_app');
db.collection("recipes").findOne({ "breakfast" : true}, function(err, result) {
if (err) {
console.log(err);
} else {
console.log(result.title);
breakfast = result;
client.close();
}
res.render("meal-plan.ejs", {breakfast:breakfast});
});
});
Это успешно позволяет мне передавать переменную завтрака в EJS.Тем не менее, я хочу передать несколько переменных (завтрак, обед, ужин).Как я могу сделать это, если я могу передать только одну переменную?Допустимо ли использовать несколько res.renders в нескольких запросах, чтобы я мог скопировать / вставить код MongoClient три раза или поместить его в функцию?