中间服务器的常见职责

  1. 场景 1:代替传统后端服务器,托管静态资源、动态渲染页面、提供少量 api 访问

  2. 场景 2:托管单页应用程序的静态资源、提供各种数据 api

egg 中的模板引擎

  1. 如果要使用传统的方式进行服务端渲染,就需要用到模板引擎

  2. egg 内置了插件 egg-view ,它本身不是模板引擎,但它可以对不同的模板引擎统一配置、统一处理

  3. 需要安装具体的模板引擎插件,完成模板引擎的启用

安装模板引擎插件

egg-view 支持多种模板引擎,用的较多是 egg-view-nunjucksegg-view-ejs

npm i egg-view-ejs

启用模板引擎插件

// config/plugin.js
exports.ejs = {
  enable: true,
  package: 'egg-view-ejs',
}

统一配置

egg 启用后,会自动加载插件 egg-viewegg-view 会读取配置中的 view 配置,来使用你指定的模板引擎

//config/config.default.js
exports.view = { // 该配置会被 egg-view 读取
  root: "模板所在的根目录", // 告诉 egg-view 到哪里去寻找模板,多个绝对路径使用逗号分割,默认 /app/view
  cache: true, // 是否在启动时缓存模板路径,以提高效率,默认开启
  mapping: { // 映射配置,将不同的模板后缀映射到对应的模板引擎处理
    ".ejs": "ejs",
    ".html": "ejs"
  },
  defaultViewEngine: "ejs", // 如果映射找不到对应的模板引擎,将使用该值作为默认使用的模板引擎
  defaultExtension: ".ejs", // 后续在 controller 中渲染模板时,默认渲染的模板后缀名
}

渲染页面

  1. 配置好模板引擎后,即可在 app/view 中书写各种模板

  2. 当某个请求到达后,如果需要经过模板渲染页面,只需要在 action 中使用对应代码即可

    render(name, model) // 渲染模板文件, 并赋值给 ctx.body
    renderView(name, model) // 渲染模板文件, 仅返回不赋值
    renderString(tpl, model) // 渲染模板字符串, 仅返回不赋值
    
  3. 在渲染时,它将按照 view 的配置进行处理,此时已形成完整的 MVC 模式

打赏作者
您的打赏是我前进的动力
微信
支付宝
评论

中午好👏🏻,我是 ✍🏻   疯狂 codding 中...

粽子

这有关于前端开发的技术文档和你分享。

相信你可以在这里找到对你有用的知识和教程。

了解更多

目录

  1. 1. 中间服务器的常见职责
  2. 2. egg 中的模板引擎
    1. 2.1. 安装模板引擎插件
    2. 2.2. 启用模板引擎插件
    3. 2.3. 统一配置
    4. 2.4. 渲染页面