Page 105 - Node.js开发指南
P. 105
98 第 5 章 使用 Node.js 进行 Web 开发
调用模板引擎。模板引擎以数据和页面模板为输入,生成 HTML 页面,然后返回给控制器,
由控制器交回客户端。图5-6 是模板引擎在 MVC 架构中的示意图。
图5-6 模板引擎在 MVC 架构中的位置
5.4.2 使用模板引擎
基于 JavaScript 的模板引擎有许多种实现,我们推荐使用 ejs (Embedded JavaScript),
因为它十分简单,而且与 Express 集成良好。由于它是标准 JavaScript 实现的,因此它不仅
可以运行在服务器端,还可以运行在浏览器中。我们这一章的示例是在服务器端运行 ejs,
这样减少了对浏览器的依赖,而且更符合传统架构的习惯。
我们在 app.js 中通过以下两个语句设置了模板引擎和页面模板的位置:
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
表明要使用的模板引擎是 ejs,页面模板在 views 子目录下。在 routes/index.js 的
exports.index 函数中通过如下语句调用模板引擎:
res.render('index', { title: 'Express' });
res.render 的功能是调用模板引擎,并将其产生的页面直接返回给客户端。它接受
两个参数,第一个是模板的名称,即 views 目录下的模板文件名,不包含文件的扩展名;第
二个参数是传递给模板的数据,用于模板翻译。index.ejs 内容如下:
<h1><%= title %></h1>
<p>Welcome to <%= title %></p>
上面代码其中有两处 <%= title %>,用于模板变量显示,它们在模板翻译时会被替换
成 Express,因为 res.render 传递了 { title: 'Express' }。