当用户在我的网站上提交表单时,我想向他们显示三个项目:早餐项目,午餐项目和晚餐项目。为此,我认为我必须分别执行db.collection(“ recipes”)。findOne,然后将该代码的结果返回到变量中,然后可以使用res.render(“ meal-plan ”,{breakfast:breakfast});
但是,事实证明从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});
});
});
这成功地使我可以将Breakfast变量传递给EJS。但是,我想传递多个变量(早餐,午餐,晚餐)。如果我只能传递一个变量,该怎么办?在多个查询中使用多个res.renders是否可以接受,所以我可以复制/粘贴MongoClient代码3次或将其放入函数中?
答案 0 :(得分:0)
在meat-plan.ejs中,您应该使用forEach 在https://ejs.co
中查看更多信息import utilsMicky from 'utils/micky';
import containersMicky from'containers/micky';
import componentsMicky from 'components/micky';