模板引擎ejs
2019-08-09 本文已影响0人
不算程序员
ejs模板引擎
将数据与标签分离开来,这样就不需要前面写的学生管理系统那样,在页面显示信息通过字符串的拼接的方式,而是直接用ejs模板引擎,将服务器端传过来的数据在页面直接显示出来,不会那样的麻烦了。
安装 npm i -D ejs
引入 app.set('view engine',"ejs")
const http = require('http');
渲染 : http.createServer((req, res) => {
if (req.url === '/') {
res.writeHead(200, {
'Content-Type': 'text/html'
});
// 渲染文件 index.ejs
ejs.renderFile('./views/index.ejs', {
title: 'ejs-index', // 渲染的数据key: 对应到了ejs中的title
index: '首页'}, // 渲染的数据key: 对应到了ejs中的index
(err, data) => {
if (err ) {
console.log(err);
} else {
console.log(data);
res.end(data);
}
})
}
}).listen(3002);
渲染ejs文件内同 : ```res.render("ejs文件名")```
语法:“
ejs声明变量 - - -> <% var a = 10; %>
ejs输入变量 - - -> <%= a %>
ejs引入其他文件 - - -> <% include 文件的地址 %>
<%_ 删除其前面的空格符
<%= 输出数据到模板(输出是转义 HTML 标签)
<%- 输出非转义的数据到模板
<%# 注释标签,不执行、不输出内容
<%% 输出字符串 '<%'
%> 一般结束标签
-%> 删除紧随其后的换行符
_%> 将结束标签后面的空格符删除”
koa使用ejs
配置koa-views
```
const koaViews = require('koa-views');
// 配置渲染文件路径 及文件后缀
app.use(koaViews('./views', {
extension: 'ejs'
}));
```
// 响应路由渲染文件
```
router.get('/', async ctx => {
await ctx.render('index', {
title: 'ejs-index', // 渲染的数据key: 对应到了ejs中的title
index: '首页'}, // 渲染的数据key: 对应到了ejs中的index
});
});
```