使用不同的模式渲染mongodb文档

时间:2017-07-08 07:06:19

标签: node.js mongodb express mongoose ejs

有没有人遇到过优雅的方式/库来渲染具有不同模式的Mongodb文档? 我基本上使用NodeJS + Express + EJS,并希望显示一些文档。文档架构不是固定的,因此像Datatable这样的解决方案应该是理想的,但需要修复列。我试图看看是否有人以一种对终端用户具有视觉吸引力和用户友好性的方式来处理这个问题的创新方式。 每个文档都有一个_id和_created。所以也许我会渲染这些列表,一旦点击它就会打开并显示所有其他字段,这些字段可能是不同的文档到文档。 谢谢 贝

1 个答案:

答案 0 :(得分:0)

据我所知,你最后提到的是大会。你应该做的不是你应该做的事情。显示列表中记录的最小和最重要信息。用户单击一个可在新页面,对话框或扩展屏幕中获取更多详细信息。这就是我们在大多数网络和移动应用中看到的内容。

网页和Restful API的网址也遵循此约定resource/resource/idapi/resourceapi/resource/id

如果字段不是很多,并且您绝对需要列表中每条记录的完整信息,那么您可以按照下面的方案进行操作。它考虑了变量字段:

//example mongodb documents
var docs = [{
        _id: "59608c980b526c5e0d72f30f",
        firstName: "Steve",
        lastName: "Smith",
        fullName: "Steve A Smith"

    },
    {
        _id: "59608c980b526c5e0d72f300",
        firstName: "John",
        lastName: "Steward",
        address: "Park Lane",
        email: "j_stwd@gmail.com"

    }];

在视图上(以?作为分隔符的ejs)

    <div class="row">
        <? docs.forEach(function(doc, index) { ?>
          <? for(var key in doc){ ?>
              <?= key !== '_id'? (key + ": " + doc[key]) : "" ?> <br>
          <? } ?>
        <? }) ?>
    </div>

enter image description here

你显然希望将每张唱片放在一些卡片或容器中并美化它。此外,可能会拆分键名或将其映射为更加人性化的格式,例如First Name而不是firstName