Javascript Node.js:使用下划线和ejs呈现html

Javascript Node.js:使用下划线和ejs呈现html,javascript,node.js,express,underscore.js,ejs,Javascript,Node.js,Express,Underscore.js,Ejs,我目前正在使用EJS模板引擎来呈现HTML页面,但我想添加下划线以简化预处理。现在,我这样做,它的工作: var _ = require("underscore"); app.get('/', function(req, res){ var data = {}; data.people = [{ name: "john" }, { name: "marry" }]; data._ = _; // inject underscore.js res.render('

我目前正在使用EJS模板引擎来呈现HTML页面,但我想添加下划线以简化预处理。现在,我这样做,它的工作:

var _ = require("underscore");

app.get('/', function(req, res){
    var data = {};
    data.people = [{ name: "john" }, { name: "marry" }];
    data._ = _; // inject underscore.js
    res.render('index', data);
});
现在要呈现HTML,我可以访问下划线:

<% _.each(people, function(person){ %>
    <div><%= person.name %></div>
<% }); %>


但是,我必须为每条路线插入下划线,是否有方法始终插入下划线?(可能是在app.engine设置中的某个地方?

您可以将
\u
绑定到
app.locals

设置后,app.locals属性的值始终保持不变 与res.locals属性相比,应用程序的生命周期 仅在请求的生存期内有效

在你看来:

<% _.each(people, function(person){ %>
    <div><%= person.name %></div>
<% }); %>

另一位SO用户给出了一个很好的答案:

请参见
app.locals
vs.
req.locals

我只是在“约翰”和“玛丽”的名字周围加了引号

<% _.each(people, function(person){ %>
    <div><%= person.name %></div>
<% }); %>