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'))
// 前者是虚拟的访问路径,后者是实际的文件所在路径