将对象传递给小胡子模板
pass object to mustache template
我正在开发一个使用 express 和 mustache 模板的项目,我正在尝试使用 res.locals 将对象传递给模板,但它不起作用,
这是代码
exports.menu = function(req,res){
res.locals.title = "Menu";
res.locals.class_type ="main_nav";
MenuDB.GetAvailableLunch()
.then((list) => {
res.locals.lunch = list;
console.log('Promise Resolved');
})
.catch((err) =>{
console.log('Promise rejected', err);
})
res.render('menu');
}
我希望来自函数的列表成为我在 mustache 页面上的午餐对象,有什么方法可以做到这一点吗?
我知道我可以这样做
.then((list) => {
res.render('menu', {
'lunch': list
});
但我正在尝试这样做,因为我将有另一个功能 return 数据库中的另一个列表,希望这足够清楚。
构建一个 promise-chain 或独立承诺数组,并在所有问题都解决后才调用 res.render()
。
例如...
exports.menu = async (req, res) => {
const [lunch, another] = await Promise.all([
MenuDB.GetAvailableLunch(),
anotherFunction(),
]);
res.render("menu", {
title: "Menu",
class_type: "main_nav",
lunch,
another
});
};
我正在开发一个使用 express 和 mustache 模板的项目,我正在尝试使用 res.locals 将对象传递给模板,但它不起作用,
这是代码
exports.menu = function(req,res){
res.locals.title = "Menu";
res.locals.class_type ="main_nav";
MenuDB.GetAvailableLunch()
.then((list) => {
res.locals.lunch = list;
console.log('Promise Resolved');
})
.catch((err) =>{
console.log('Promise rejected', err);
})
res.render('menu');
}
我希望来自函数的列表成为我在 mustache 页面上的午餐对象,有什么方法可以做到这一点吗? 我知道我可以这样做
.then((list) => {
res.render('menu', {
'lunch': list
});
但我正在尝试这样做,因为我将有另一个功能 return 数据库中的另一个列表,希望这足够清楚。
构建一个 promise-chain 或独立承诺数组,并在所有问题都解决后才调用 res.render()
。
例如...
exports.menu = async (req, res) => {
const [lunch, another] = await Promise.all([
MenuDB.GetAvailableLunch(),
anotherFunction(),
]);
res.render("menu", {
title: "Menu",
class_type: "main_nav",
lunch,
another
});
};