如何使用Node.js + Express3将变量注入EJS模板?

时间:2012-11-19 00:23:31

标签: node.js express

我希望能够在我的EJS模板中使用Underscore.js,如下所示:

<% _.each(articles, function(article){ %>
    <section>
      <h2><%= title %></h2>
      <%= body %>
    </section>
    <hr/>
<% }) %>

我可以为每条路线注入它......就这样......

var _ = require('underscore');
exports.index = function(req, res){
    res.render('index', { _: _, articles: app.allArticles() });
};

但这很乏味且容易出现人为错误。是否有一个通用的解决方案,一直为所有视图注入它?

1 个答案:

答案 0 :(得分:6)

您可以使用app.locals执行此操作。

var _ = require('underscore');
var express = require('express');
var app = express();
app.locals._ = _;
// some code
app.listen(3000);