将多个不同的Mongodb查询传递给EJS



当用户在我的网站上提交表单时,我想向他们展示三个项目:早餐项目、午餐项目和晚餐项目。要做到这一点,我想我必须单独做一个db.collection("recipes"(.findOne,然后将该代码的结果返回给一个变量,然后我可以使用res.render("膳食计划",{早餐:早餐}(将其传递给EJS;

然而,事实证明,在关闭findOne查询之前,必须将从findOne查询收集的变量传递给EJS,否则您将无法访问它们。现在我陷入了这样的困境:

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代码三次或将其放入一个函数中,这可以接受吗?

在meal-plan.ejs中,应该使用forEach更多信息,请访问https://ejs.co

<%breakfast.forEach(bf){%>
<p><%bf.name%></p>
<%}%>

最新更新