MVC中的V视图-ejs模板引擎的使用

Template Engine是一个从页面模板(html页面模板)根据一定的规则(插入可执行的代码)生成(运行时动态生成)HTML的工具。

在MVC架构中,模板引擎包含在服务器端,控制器(Express即C)得到用户请求后,从模型(M)获取数据,调用模板请求(ejs)。模板请求(ejs)以数据(模型M)和页面模板(ejs视图V)为输入,生成HTML页面,然后返回给控制器(Express即C),由Express控制器交回给客户端。

在app.js中通过以下语句设置了模板引擎和页面模板的位置:

var path = require(‘path’);

//view engine setup

app.set('views', path.join(__dirname, 'views'));

app.set('view engine', 'ejs');

表明要使用的模板引擎是ejs,页面模板在views子目录下。在routes/index.js的module.exports = router函数中通过如下语句调用模板引擎:

res.render('index', {title: 'Express'});

render的功能是调用模板引擎,并将其产生的页面直接返回给客户端。它接受两个参数,第一个是模板的名称,即views目录下的模板文件名,不包含文件的扩展名;第二个参数是传递给模板的数据,用于模板翻译。

<h1><%= title %></h1>
<p>Welcome to <%= title %></p>

上面代码中有两处<%= title %>,用于模板变量显示,它们在模板翻译时会被替换成Express,因为res.render传递了{title: 'Express'}。

ejs的标签系统非常简单,它只有以下三种标签。

<% code %>:JavaScript代码。

<%= code %>显示替换过HTML特殊字符的内容。

<%- code %>显示原始HTML内容。

我们可以用他们来实现页面模板系统能实现的任何内容。

posted @ 2015-03-23 01:07  小丸子的笑  阅读(746)  评论(0编辑  收藏  举报