Node模板引擎学习(3)--EJS

jade虽然简洁受很多大神推崇并且也是官方推荐, 但我个人觉得可读性太差了, 个人倾向朴实的EJS,这里两者都进行学习,至于Handlebars,Swig如果公司要用再学习吧

EJS

EJS几乎不要学习成本, 举两个例子差不多就能用了,如下

<% if (user) { %>
  <h2><%= user.name %></h2>
<% } %>
<ul>  
    <% for(var i=0; i<supplies.length; i++) { %>  
        <li>  
            <a href='supplies/<%= supplies[i] %>'>  
                <%= supplies[i] %>  
            </a>  
        </li>  
    <% } %>  
</ul>

注意 :
<% Scriptlet' 标签, 用于控制流,没有输出

<%= 向模板输出值(带有转义)

<%- 向模板输出没有转义的值

<%# 注释标签,不执行,也没有输出

<%% 输出字面的 '<%'

%> 普通的结束标签

-%> Trim-mode ('newline slurp') 标签, 移除随后的换行符

在Express中设置模板引擎

app.set('views', './views');  // 指定模板文件存放位置
app.set('view engine', 'jade')  // 设置默认的模板引擎
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.engine( 'ejs', require('ejs')._express )

注意: _express函数是许多模板引擎提供的回调函数。但是这个函数只能在默认的文件扩展名上工作。但是,有种情况我们使用的不是对应模板引擎的扩展名的怎么办呢?这时不能再调用_express函数。在这种情况下我们可以使用一个替代的函数,例如: 在EJS中提供了renderFile函数来完成相同的功能。

app.engine( '.html', require('ejs').renderFile );  // 注册html模板引擎 
app.set('view engine', 'html');  // 将模板引擎换成html
app.engine('.html',ejs.__express)
app.set('view engine','html)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 模板引擎(Template Engine), 是用来解析对应类型模板文件然后动态生成由数据和静态页面组成的视图文件...
    _palm阅读 13,156评论 4 16
  • Express是Node社区里的超级明星,他的作者TJ Holowaychuk也因此成为了社区里大红大紫的开发者。...
    2MuchT阅读 3,058评论 1 30
  • 搭建开发环境并模拟交互数据 一、实验说明 下述介绍为实验楼默认环境,如果您使用的是定制环境,请修改成您自己的环境介...
    玄月府的小妖在debug阅读 2,166评论 0 15
  • Express 框架 第一章 Express简介 npm提供了大量的第三方模块,其中不乏许多Web框架,我们没有必...
    whitsats阅读 1,226评论 0 0
  • Koa2-blog 2018-1-5 更新教程(新增上传头像、新增分页、样式改版、发布文章和评论支持markdow...
    wclimb阅读 9,235评论 1 53