某些对象值在ejs循环中不可访问
我试图解决一个问题,访问一个forEach循环内的一些javascript对象的所有值与ejs。
使用以下…..
<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
问题是当我尝试访问使用“名称”或“电子邮件”值
<li><%= user.name %></li> <li><%= user.email %></li>
结果在“未定义”,即使我知道值正在达到正确的观点。 我究竟做错了什么? 提前致谢!
Mongoose Document实例实际上并不直接将数据存储在文档实例本身上,因为它具有特殊的getter / setter,以确保在其他Mongoose方法调用中使用该文档时,所有内容都是一致的。
getters / setter使用_doc
对象来存储实际值,但也可以调用toObject()
来返回一个包含期望文档值的普通js对象。