Nodejs在视图中使用方法

时间:2014-01-23 15:03:06

标签: node.js pug

例如,在我的Nodejs应用程序中,我有一个路由器:

exports.test=function(req,res){ 
  res.render('./admin/test.jade',{html:[a,b,c]); 
}

我有Underscore.js

在我看来test.jade

-var _und=require('Underscore.js')
....
div
  -_und.each(html,function(m))
    span m

....

但是我收到了错误。这表明,Underscore.js只是用作服务器端方法,如何在视图中使用服务器端方法?

1 个答案:

答案 0 :(得分:2)

您无需从视图中要求下划线。要查看您应该只发送数据(这意味着在想法的情况下,您根本不应该使用下划线)。但是如果你愿意,你仍然可以发送下划线作为一个函数来查看:

exports.test = function(req,res) { 
   res.render('./admin/test.jade',{ html: [a,b,c], _ : require("underscore") }); 
};

或者像这样:

exports.test = function(req,res) { 
   var underscore = require("underscore");
   res.render('./admin/test.jade', { html : [a,b,c], _ : underscore }); 
}

在您的视图中,您可以访问以下内容:

div
  -_und.each(html,function(m))
    span m

您可以从我的nodejs github markdown项目(http://bit.ly/1aOAG35)中获得灵感。使用下划线进行布局,我也在模板中使用它:

{{# onlyblogs.forEach(function(current){ }}
<li>

<a href="..{{ current._fullpath }}">{{ current.title }}</a>

{{# if (current.description){ }}
<span>{{ current.description }}</span>
{{# } }}

<span>{{ current.category }}</span> in <date>{{ current.date }}</date>.

</li>
{{# }); }}

希望它有所帮助。