我正在学习教程,但被困在这里。对我来说,一切看起来都很好。我仍然收到此错误。有人可以指出我正确的方向吗?
成员名称未定义
<% 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 //<--
});
当这个问题被修复时,你还需要提供createdOn
、project
、workYesterday
、workToday
、workTomorrow
和impediment
。
<%=
是一个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>
<% }) %>