【问题标题】:How to set up a default layout in nest.js using Handlebars.js?如何使用 Handlebars.js 在nest.js 中设置默认布局?
【发布时间】:2019-01-21 13:19:03
【问题描述】:

我刚开始使用nest.js,之前对node 和express 有一些经验。

我正在尝试为我的部分和响应呈现设置默认布局。这是我的main.ts

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import * as hbs from 'hbs';

async function bootstrap() {
    const app = await NestFactory.create(AppModule);

    app.setBaseViewsDir(__dirname + '/views');
    hbs.registerPartials(__dirname + '/views/partials');
    app.setViewEngine('hbs');

    await app.listen(3000);
}
bootstrap();

我觉得应该在该代码的某处定义一个默认布局,但我不知道如何继续。我的 Google-fu 让我失望了,有谁能帮帮我吗?

【问题讨论】:

    标签: javascript node.js typescript handlebars.js nestjs


    【解决方案1】:

    你可以使用

    app.set('view options', { layout: 'index' });
    

    您仍然需要在所有控制器上使用@Render('valid-layout'),并且提供的布局名称必须有效。它只会被您的默认布局覆盖。

    【讨论】:

      【解决方案2】:

      这适用于 NestExpressApplication:

      进口车把:

      import * as hbs from 'hbs';
      import { join } from 'path';
      

      将 hbs 设置为 viewEngine a

      app.setBaseViewsDir(join(__dirname, '..', 'views'));
      app.setViewEngine('hbs');
      hbs.registerPartials(join(__dirname, '..', '/views/partials'));
      

      还与助手一起工作:

      hbs.handlebars.helpers = {
      ...require('handlebars-helpers')()
      };
      

      【讨论】:

        猜你喜欢
        • 2011-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-27
        • 2015-06-24
        • 2021-10-27
        • 1970-01-01
        相关资源
        最近更新 更多