node.js之EJS

github : https://github.com/visionmedia/ejs

ejs模板跟其他模板差不多。

与smarty模板的区别:

  1. 开始标记(<% ;{ )和结束标记( %>;} )
  2. 模板函数名或功能稍有不同

安装

npm install ejs

特点

模板逻辑代码
    <% code %>
输出变量值
    <%= code %>
不做转义的输出变量值
    <%- code %>

简单示例

<% if (user) { %>
    <h2><%= user.name %></h2>
<% } %>

ejs.compile(str, options);
// => Function

ejs.render(str, options);
// => str

<ul>
  <% users.forEach(function(user){ %>
    <% include user/show %>
  <% }) %>
</ul>

更改开始标记和结束标记

var ejs = require('ejs');
ejs.open = '{{';
ejs.close = '}}';

<h1>{{= title }}</h1>

函数列表

  • first
  • last
  • capitalize
  • downcase
  • upcase
  • sort
  • sort_by:'prop'
  • size
  • length
  • plus:n
  • minus:n
  • times:n
  • divided_by:n
  • join:'val'
  • truncate:n
  • truncate_words:n
  • replace:pattern,substitution
  • prepend:val
  • append:val
  • map:'prop'
  • reverse
  • get:'prop'

模板嵌套

<% include head %>
<h1>Title</h1>
<p>My page</p>
<% include foot %>