用的比较多的几个标签,可能是下面几个,先来说说:
<% code %> 用于流程控制的js代码,不能执行输出代码
<%= code %> 输出数据到模板,如果原内容有html标记,也会被原样输出到浏览器
<%- code %> 输出数据到模板,如果原内容有html标记,html标记会被转义解析掉,只输出文本内容
看实例:
//源数据
router.get('/', function (req, res, next) {
res.render('index', {
title: 'HomePage',
content: '<div class="box">有童鞋回复问使用pool又会怎样,于是去看了下mysql模块的源码:目前可在npm中安装到的最新版本为2.0.0-alpha7,使用mysql.createPool()来创建的pool没办法自动处理连接被关闭的问题,但是在github上的版本已经修复了</div>',
desc:'<div class="box">我赶紧给程序添加了断线后自动重连功能,现在已正常运行了10多天。</div>',
user: 2
});
模板渲染:
<% if (user) { %>
<p><%= content %></p>
<%- desc%>
<% } %>
看输出内容:
上面的是content字段,下面的为desc字段,<%= code %>和<%- code %>的异同点在这里表现的很明显,也很清晰。
上面的都是用的比较多的几个,也可能是不太容易理解的几个,接下来将剩下的几个标签也分享下:
<%# code %> 注释标签,里面的内容不执行,不输出内容
<%% code %> 对标记进行转义,不管code的内容是什么,都会原样输出
<%- include(path) %> 引入其他模板
<% -%> 删除紧随其后的换行符
<% _%> 将结束标签后面的空格符号删除掉