簡體   English   中英

Node.js:使用下划線和ejs來渲染html

[英]Node.js: use underscore along with ejs to render html

我目前正在使用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設置的某個地方?)

您可以將_綁定到app.locals

設置后, app.locals屬性的值在應用程序的整個生命周期中都會持續存在,而res.locals屬性僅在請求的生命周期內有效。

app.locals._ = _;

app.get('/', function(req, res){
    var data = {};
    data.people = [{ name: 'john' }, { name: 'marry' }];
    res.render('index', data);
});

在你看來:

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

另一個SO用戶有一個很好的答案: 在app.locals中訪問req和res

請參閱有關app.localsreq.locals 的文檔

我只是在名字'john'和'marry'周圍加上引號

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM