模板渲染
本组件用于在 midway 体系使用服务端渲染 ejs,nunjucks 模板。
使用 ejs
安装依赖
选择对应的模板安装依赖。
$ npm i @midwayjs/view-ejs@2 --save
引入组件
首先,引入组件,在 configuration.ts
中导入:
import { Configuration } from '@midwayjs/decorator';
import * as view from '@midwayjs/view-ejs';
import { join } from 'path';
@Configuration({
imports: [
view, // 导入 ejs 组件
],
importConfigs: [join(__dirname, 'config')],
})
export class ContainerLifeCycle {}
配置
// src/config/config.default.ts
export const view = {
defaultViewEngine: 'ejs',
mapping: {
'.ejs': 'ejs',
},
};
// ejs config
export const ejs = {};
使用
注意,默认的 view 目录为 ${appRoot}/view
,在其中创建一个 hello.ejs
文件。
目录结构如下:
➜ my_midway_app tree
.
├── src
│ └── controller ## Controller 目录
│ └── home.ts
├── view ## 模板目录
│ └── hello.ejs
├── test
├── package.json
└── tsconfig.json
我们在模板里写一些 ejs 格式的内容,比如:
// view/hello.ejs
hello <%= data %>
在 Controller 中渲染。
import { Inject, Provide } from '@midwayjs/decorator';
import { Context } from '@midwayjs/koa';
@Provide()
@Controller('/')
export class HomeController {
@Inject()
ctx: Context;
@Get('/')
async render() {
await this.ctx.render('hello.ejs', {
data: 'world',
});
}
}
使用 Nunjucks
和 ejs 类似,引入对应组件即可。
1、选择对应的模板安装依赖。
$ npm i @midwayjs/view-nunjucks --save
2、引入组件,在 configuration.ts
中导入:
import { Configuration } from '@midwayjs/decorator';
import * as view from '@midwayjs/view-nunjucks';
import { join } from 'path';
@Configuration({
imports: [
view, // 导入 nunjucks 组件
],
importConfigs: [join(__dirname, 'config')],
})
export class ContainerLifeCycle {}
3、增加 nunjucks 的配置,比如默认使用 nunjucks。
// src/config/config.default.ts
export const view = {
defaultViewEngine: 'nunjucks',
mapping: {
'.nj': 'nunjucks',
},
};
4、在 view 目录增加模板
// view/test.ejs
hi, {{ user }}