Обратите внимание, что вы должны , а не использовать расширение .ejs
в res.render
, несмотря на другие ответы на ваш вопрос, предлагающие это сделать.
Когда вы вызываете res.render('myView')
, ejs ищет шаблон с именем myView.ejs
в папке с именем views
(которая установлена в качестве папки по умолчанию для использования ejs)
например:
res.render('myView.ejs',{
data:data,
foo:'foo'
});
ejs будет искать представление с именем myView.ejs.ejs
(или оно может вообще потерпеть неудачу).
Чтобы получить доступ к данным в вашем шаблоне, вы должны сделать следующее:
app.js:
app.get('/somePathHere', function(req, res) {
res.render('myView',{
data:data,
foo:'foo'
});
});
myView.ejs:
<% data.forEach(function(item) { %>
//do something
<% }); %>
<%= foo %>
Обратите внимание , что при доступе к переменной вы используете <%= varNameHere %>
, а при написании любого типа функции вы пропустите =
.