首页 > 解决方案 > 无法使用 express-edge 模板从 mongodb 文档中呈现数组元素

问题描述

我正在关注这个博客教程来学习 nodejs 后端和 mongodb,它似乎有点过时(我不得不调整一些东西才能使其工作)但我也没有 100% 遵循它,因为我正在制作我自己的前端而不是使用主题,我使用的是我自己的数据库,这带来了问题:

在渲染帖子列表时,我想在每个帖子中渲染它的标签列表,在我的数据库中是一个字符串数组,但它不起作用。当我尝试仅访问数组的第一个元素时,它返回未定义。

此代码不呈现任何内容<li>

<div class="row" id="lista-posts">
        @each(post in posts)
            <div class="col-12">
                <a href="/posts/{{post._id}}"></a>
                <h4>{{post.titulo}}</h4>
                <ul>
                    @each(tag in post.tags)
                        <li>{{tag}}</li>
                    @endeach
                </ul>
                <div class="post-conteudo">
                    {{post.conteudo}}
                </div>
            </div>
        @endeach
    </div>

这一个在这里渲染一个<li>(如预期的那样),但它写成未定义:

(...)                
                <h4>{{post.titulo}}</h4>
                <ul>
                    <li>{{post.tags[0]}}</li>
                </ul>

所有其他元素,如“titulo”和“conteudo”都渲染得很好。对于上下文,我的数据库中的每个帖子都有:

_id:IdObject

名称:字符串

技术标签: 字符串数组

继续:字符串

标签: node.jsmongodbexpress

解决方案


原来是因为我没有tags在我的猫鼬模式中设置数组。


推荐阅读