某些对象值在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对象。