Page 108 - Node.js开发指南
P. 108

5.4  模板引擎    101


                   静态视图助手可以通过 app.helpers() 函数注册,它接受一个对象,对象的每个属性名                                     1
               称为视图助手的名称,属性值对应视图助手的值。动态视图助手则通过 app.dynamicHelpers()
               注册,方法与静态视图助手相同,但每个属性的值必须为一个函数,该函数提供 req 和 res,
               参见下面这个示例:
                                                                                                      2
                   var util = require('util');

                   app.helpers({
                     inspect: function(obj) {
                       return util.inspect(obj, true);
                     }                                                                                3
                   });

                   app.dynamicHelpers({
                     headers: function(req, res) {
                       return req.headers;
                     }                                                                                4
                   });

                   app.get('/helper', function(req, res) {
                     res.render('helper', {
                       title: 'Helpers'                                                               5
                     });
                   });
               对应的视图helper、ejs的内容如下:

                   <%=inspect(headers)%>                                                              6
                   访问 http://localhost:3000/helper 可以看到如图5-7 所示的内容。



                                                                                                      7






                                                                                                      8




                                                                                                      9





                                                                                                      10
                                              图5-7  使用视图助手的页面
   103   104   105   106   107   108   109   110   111   112   113