2. Ejs
Ejs是express生态里面的一个模板引擎,主要用于便捷地挂载静态html页面
- 安装依赖
// 终端中npm i ejs
- 使用模板
加载模板引擎的默认文件夹是src/views
// app.js中app.set('view engine', 'ejs')app.get('/', (req, res) => {const richtext = '<p>这是一个需要渲染的p标签</p>'res.render('index.ejs', // ejs的路径,不需要写views。后缀可省略{title: '这是首页', richtext} // 向ejs中传递的参数)})
模板内容
// views/index.ejs<html>...<p>参数: <%=title%>html: <%-richtext%></p>...</html>// 就html内容即可
supervisor可以启动一个热更新服务
- 模板中的逻辑处理
// index.ejs中<%if(flag==true){%><strong> flag=true </strong><%}%><%if(score>60){%><p> 及格了 </p><%}else{%><p>不及格</p><%}%>
// app.js 中app.get('/', (req, res) => {res.render('index.ejs', {flag: true,score: 62})})
- 模板中的循环遍历
// index.ejs中<ul><%for (let i = 0; i<list.length>; i++){%><li><%=list[i]%></li><%}%></ul>
// app.js中app.get('/', (req, res) => {const list = [1,2,3,4]res.render('index.ejs', {list})})
- 模板中使用模板
<%- include('footer.ejs') %>
使用html模板
- 在app.js中引入ejs
- 在app.js中注册html模板引擎
- 将模板引擎换成html代码
- 修改模板文件的后缀为html
- html模板的语法同ejs ```javascript //app.js const ejs = require(‘ejs’) const express = require(‘express’)
const app = express() app.engine(‘html’, ejs.__express) app.set(‘view engine’, ‘html’)
7.在模板中引入css等静态资源1. express托管静态资源```javascript// css文件放在static/css文件夹中const express = require('express')const app = express()app.use(express.static('static'))
- 在模板中通过link标签引入
<head><link rel='stylesheet' href='/css/base.css'></head>
8 express配置虚拟静态目录
// app.js中app.use('/public', express.static('static'))// 前者是虚拟的访问路径,后者是实际的文件所在路径
