• Express模板引擎


    与express一起使用的一些流行模板引擎是Pug,Mustache和EJS。Express应用程序默认使用Pug,但他也支持其他几个。

    需要在应用中进行如下设置才能让Express渲染模板引擎:

    • view,放模板的文件目录,例如:app.set('views','./views)
    • view engine,要使用的模板引擎。例如,要使用pug模板引擎:app.set('view engine', 'pug')

    在路由中渲染模板

    在路由渲染模板并将渲染后的HTML字符串发送到客户端。

    res.rander(view [, locals] [, callback])
    
    • 1
    • view:一个字符串,view是渲染的模板文件的文件路径。
    • locals:一个对象,其属性定义视图的局部变量。
    router.get("/", (req, res) => {
      // res.send({ list: ['aaa', 'bbb', 'ccc'] })
      res.render("list", { title: "新闻", list: ["aa", "bb", "cc"] })
    })
    
    • 1
    • 2
    • 3
    • 4

    ejs模板引擎的使用

    安装ejs

    npm i ejs
    
    • 1

    在express配置ejs模板引擎

    使用ejs模板引擎

    在入口文件中配置如下代码,配置Express使用ejs模板引擎

    //配置模板引擎
    app.set("views", path.join(__dirname, "./views")) //设置模板引擎的保存位置
    app.set('view engine', 'ejs')
    
    • 1
    • 2
    • 3

    注意:

    此时指定的模板目录为views,且模板文件的后缀名为.ejs

    设置模板后缀为html

    在app.js中添加如下代码,配置Express使用ejs模板引擎。并指定模板后缀名为html。

    app.set('views',path.join(__dirname,'views')); //设置模板存储位置
    app.set('view engine','html');
    app.engine('html',require('ejs').renderFile); //使用ejs模板引擎解析html
    
    • 1
    • 2
    • 3

    注意:此时指定的模板目录为views,且模板文件的后缀名为.html

    ejs模板语法

    <%= %>   输出标签
    <%- %>   输出html标签(html会被浏览器解析)
    <%# %>   注释标签
    <% %>    流程控制标签(写的是if,else,for)
    <%- include("header.html",{user:user})%>  导入公共的模板内容
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    <body>
      <%- include("./haeder.html",{isShow:true})%>
        这是list页面
        <%=title%>
          <ul>
            <% for(var i=0;i<list.length;i++){ %>
              <li>
                <%=list[i]%>
              </li>
              <%} %>
          </ul>
          <h%- <h5>我是输出的html标签</h5>%>
    
            <%# <h3>注释标签,不会显示在页面结构中</h3>%>
              <%- include("./footer.html")%>
    </body>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    Snipaste_2022-06-27_16-51-25

  • 相关阅读:
    基于Java+SpringBoot+MyBatis+Vue前后端分离宠物领养设计与实现
    21天学习挑战赛——Python JSON标准库
    学生通讯录管理系统【用 结构数组 实现 通讯录管理】【C语言】
    STM32单片机三线制PT100温度采集控制系统LCD12864显示器
    【AUTOSAR-CanIf】-2.2-图解常用Software Filter Algorithm及其应用场景
    十年数据库专家,呕心力作MySQL技术精粹,薪资直涨3K其实很轻松
    安装dolphinscheduler
    子数组的最小值之和(java)
    工作杂记-YUV的dump和read
    Scala基础篇--变量与常量
  • 原文地址:https://blog.csdn.net/liyuchenii/article/details/125487760