未定义属性 EJS:nodeJS



我正在学习教程,但被困在这里。对我来说,一切看起来都很好。我仍然收到此错误。有人可以指出我正确的方向吗?

成员名称未定义

<% for(var i=0; i < notes.length; i++) { %>
<div class="list-group-item">
<div>Note from <em><strong><%=memberName[i]%></strong></em> on:
<%= createdOn.toDateString() %>
<strong><%= project[i] %></strong></div>
<div><strong>Work yesterday:</strong>
<%= workYesterday[i] %>
</div>
<div><strong>Work today:</strong>
<%= workToday[i] %>
</div>
<div><strong>Impediment:</strong>
<%= impediment[i] %>
</div>
</div>
<%}%>

控制器代码:

exports.list = function (req, res) {
var query = Standup.find();
query.limit(12)
.exec(function (err, results) {
console.log(results);
res.render('index', { title: 'Standup - List', notes: results });
});
};

ejs 文件中的<%=memberName[i]%>表示"当我发送 ejs 时,我会用 memberName 的值替换它"。

但是在您的控制器中,您不提供它,这会阻止 ejs。

在控制器中,您应该具有类似以下内容:

res.render('index', {
title: 'Standup - List',
notes: results,
memberName: memberName //<--
});

当这个问题被修复时,你还需要提供createdOnprojectworkYesterdayworkTodayworkTomorrowimpediment

<%=

是一个EJS标签,用于计算HTML中的值。<%= memberName %>将在 HTML 代码中输出变量memberName的值。因此,您需要在呈现 html 页面时传递参数 memberName。您错过了该参数。 控制器代码应如下所示:

exports.list = function (req, res) {
var query = Standup.find();
query.limit(12)
.exec(function (err, results) {
console.log(results);
res.render('index', { title: 'Standup - List', notes: results, memberName: 'Test Member Name' });
});
};

您可能正在寻找以下内容:

<% for(var i=0; i < notes.length; i++) { %>
<div class="list-group-item">
<div>Note from <em><strong><%= notes[i].memberName %></strong></em> on:
<%= notes[i].createdOn.toDateString() %>
<strong><%= notes[i].project %></strong></div>
<div><strong>Work yesterday:</strong>
<%= notes[i].workYesterday %>
</div>
<div><strong>Work today:</strong>
<%= notes[i].workToday %>
</div>
<div><strong>Impediment:</strong>
<%= notes[i].impediment %>
</div>
</div>
<%}%>

可以进一步简化为:

<% notes.forEach(function(note) { %>
<div class="list-group-item">
<div>Note from <em><strong><%= note.memberName %></strong></em> on:
<%= note.createdOn.toDateString() %>
<strong><%= note.project %></strong></div>
<div><strong>Work yesterday:</strong>
<%= note.workYesterday %>
</div>
<div><strong>Work today:</strong>
<%= note.workToday %>
</div>
<div><strong>Impediment:</strong>
<%= note.impediment %>
</div>
</div>
<% }) %>

最新更新