当用户在我的网站上提交表单时,我想向他们展示三个项目:早餐项目、午餐项目和晚餐项目。为此,我认为我必须单独执行一个 db.collection("recipes").findOne,然后将该代码的结果返回到一个变量,然后我可以使用 res.render("meal-plan ", {早餐:早餐});
但是,从 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 代码三次或将其放入一个函数中?