使用Handlebars和ExpressJS的多种布局?

Jak*_*son 13 template-engine node.js express handlebars.js

如果我使用Handlebars作为Express 4的模板引擎,似乎只有指定单个布局模板的选项可用于所有视图:

app.engine('hbs', expressHbs({extname:'hbs', defaultLayout:'layout.hbs'}));
Run Code Online (Sandbox Code Playgroud)

如果您的应用需要多个布局怎么办?如果viewA.hbs使用一个布局并viewB.hbs需要不同的布局怎么办?

当我正在学习nodejs时,我来自PHP Laravel背景,其中Blade模板引擎可以指定在每个视图文件的顶部使用哪种布局.这使得在任何给定视图的布局模板之间切换非常简单.

Rya*_*yan 41

调用render方法时,应该能够从路径/控制器传递布局.

router.get('/', function(req, res) {
    res.render('home', {layout: 'viewBLayout.hbs'});
});
Run Code Online (Sandbox Code Playgroud)

我很确定jade会让你从模板内部切换布局,但我不知道你是否可以用手把来做.