egg模板渲染

963 阅读1分钟

egg中模板引擎的插件配置项

config.view = {
  // 多个绝对路径 支持配置多个模板目录
  root: [
      
  ].join(','),
  // 是否缓存路径查找,如果开启之后,就会缓存通过root中匹配的路径,下一次不会重新查找路径
  // TIP: 注意 不是缓存模板或者模板的编译结果
  cache: true,
  // 可以配置不同的文件后缀使用哪个模板引擎进行处理
  mapping: {
      '.nj': 'nunjucks'
  },
  // 可以配置默认的模板引擎,这样当没有通过后缀匹配到模板引擎的时候,就会使用这个配置项指定的引擎,进行渲染
  defaultViewEngine: '',
  // 默认的文件后缀,如果指定了的话,就可以在使用render方法的时候 不写文件后缀
  defaultExtension: '',
  
}

注意点

  1. root可以指定多个模板目录
  2. 必须配置mapping指定引擎和文件的对应环境
  3. cache配置项只是用来缓存路径,不是缓存模板或者模板编译结果的

模板引擎的使用

egg提供了三个方法

  1. ctx.render 只有这个方法会将结果返回给ctx.body
  2. ctx.renderView
  3. ctx.renderString

内部调用原理

ctx.renderView方法为例:

egg-view.svg