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

Ada*_*tle 3 node.js express

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

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

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

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

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

Vad*_*hev 6

你可以用app.locals这样做.

var _ = require('underscore');
var express = require('express');
var app = express();
app.locals._ = _;
// some code
app.listen(3000);
Run Code Online (Sandbox Code Playgroud)