在 ejs 循环中无法访问某些对象值
Certain object values not accessible in ejs loop
我正在尝试通过使用 ejs 访问 forEach 循环内某些 javascript 对象的所有值来解决这个问题。
使用以下.....
<ul>
<% users.forEach(function(user) { %>
<li><%= user %></li>
<% }); %>
</ul>
像这样将对象正确显示为列表..
{ _id: 55907b9a84218bf511000001, __v: 0, bio: 'awesome bio', name: 'Joe Bloggs', email: 'joe@mail.com'}
{ _id: 5590818fba82f6e31a000001, bio: 'Another great bio', name: 'Rose', email: 'rosey@mail.com' }
并使用....
<ul>
<% users.forEach(function(user) { %>
<li><%= user.id %></li>
<% }); %>
</ul>
只显示对象 ID,就像这样....
55907b9a84218bf511000001
5590818fba82f6e31a000001
问题是当我尝试使用
访问 'name' 或 'email' 值时
<li><%= user.name %></li>
<li><%= user.email %></li>
结果为 'undefined',即使我知道这些值已正确到达视图。我究竟做错了什么?提前致谢!
Mongoose Document 实例实际上并不直接将数据存储在文档实例本身上,因为它具有特殊功能 getters/setters 以确保在其他 Mongoose 方法调用中使用该文档时一切都是一致的。
getters/setters 使用 _doc
对象存储实际值,但您也可以调用 toObject()
到 return 包含预期文档值的普通 js 对象。
我正在尝试通过使用 ejs 访问 forEach 循环内某些 javascript 对象的所有值来解决这个问题。
使用以下.....
<ul>
<% users.forEach(function(user) { %>
<li><%= user %></li>
<% }); %>
</ul>
像这样将对象正确显示为列表..
{ _id: 55907b9a84218bf511000001, __v: 0, bio: 'awesome bio', name: 'Joe Bloggs', email: 'joe@mail.com'}
{ _id: 5590818fba82f6e31a000001, bio: 'Another great bio', name: 'Rose', email: 'rosey@mail.com' }
并使用....
<ul>
<% users.forEach(function(user) { %>
<li><%= user.id %></li>
<% }); %>
</ul>
只显示对象 ID,就像这样....
55907b9a84218bf511000001
5590818fba82f6e31a000001
问题是当我尝试使用
访问 'name' 或 'email' 值时<li><%= user.name %></li>
<li><%= user.email %></li>
结果为 'undefined',即使我知道这些值已正确到达视图。我究竟做错了什么?提前致谢!
Mongoose Document 实例实际上并不直接将数据存储在文档实例本身上,因为它具有特殊功能 getters/setters 以确保在其他 Mongoose 方法调用中使用该文档时一切都是一致的。
getters/setters 使用 _doc
对象存储实际值,但您也可以调用 toObject()
到 return 包含预期文档值的普通 js 对象。