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' }。
   100   101   102   103   104   105   106   107   108   109   110