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