hapijs 中的多种布局

Multiple layouts in hapijs

我正在尝试在 hapi 应用程序中使用多个布局。我有 2 个布局文件:accountdefault

这是我的视图引擎注册:

server.views({
    engines: { html: require('handlebars') },
    relativeTo: __dirname,
    path: './views',
    layoutPath: './views/layout',
    layout: 'default'
    //helpersPath: 'views/helpers',
    //partialsPath: 'views/partials'
});

默认情况下它抓取 default,我如何强制它为特定文件显示另一个布局?

我也试过将它添加到视图调用中,但没有成功:

module.exports.index = function (request, reply) {
    reply.view("home/index", {layout: 'account'});
}

reply.view() 的第二个参数是 context 对象。因此,您在示例中所做的是提供带有 layout 属性 的上下文,这就是它不起作用的原因。 options 应该是第三个参数:

reply.view(template, [context, [options]])

如果您没有context,您可以提供一个空对象。这应该有效:

module.exports.index = function (request, reply) {

    reply.view('home/index', {}, { layout: 'account' });
};