EJS template

与所有软件开发一样,Web 开发中也会面对着逻辑和数据。将逻辑和数据分开,是良好的工程结构必须做到的,否则代码会混乱不堪。而很不幸的是,用 JavaScript 去生成 HTML 时,往往就会都杂糅到一块儿。

EJS 就是一个 JavaScript 的模版类,可以将逻辑写成一个 HTML 模版,并把数据分离出去。包括 hexo, Express.js 等框架中也都采用了 EJS。

EJS

其最主要的是 <% js代码 %><%= 表达式 %> 两个语句。前者会执行里面的 js 代码,后者会将里面的表达式直接输出到 HTML 中。

如:

1
2
3
4
5
6
7
<% if (gender==0) { %>
<%= 'Male' %>
<% } else if (gender==1) { %>
<%= 'Female' %>
<% } else { %>
<%= 'Unknown' %>
<% } %>

简单的判断,也可用问号表达式:

1
<%= a>10 ? 'Success' : 'Failed' %>

需要注意,开括号<%的右侧和内容之间、闭括号%>的左侧和内容之间,一定要留有空格,否则会报错。