【问题标题】:Display items from MongoDB to FrontEnd显示从 MongoDB 到 FrontEnd 的项目
【发布时间】:2019-01-08 09:56:03
【问题描述】:

我在 MongoDB 数据库中有一个嵌套数组,我希望使用 Jade 和 Express 在前端显示。

我在显示它们时遇到了一些问题:

这是我希望显示的嵌套项:

MongoDB:

{
    "_id" : ObjectId("5c3343913d1e1323111fce6f"),
    "title" : "Projecten",
    "__v" : 0,
    "sub_items" : [ 
        {
            "title" : "item1"
        }, 
        {
            "title" : "item2"
        }
    ]
}

猫鼬模型:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var menuItems = new mongoose.Schema({
  sub_items : {
    title: String
  }
}, {collection: 'menu_items'});

module.exports = mongoose.model("menu_items", menuItems);

我这样用 Express 发布嵌套项目:

postController.updateSubItems = function(req,res,item) {
  var id = req.body.id;
  var saveData = {
    title: req.body.sub_item
  };
  item.update({_id: id}, {$addToSet:{sub_items: saveData}}, (err, result) => {
  });
};

玉中这样显示:

each item in data
   p #{item.sub_items}

最终结果是这样的:

item1,item2

就像一个字符串,虽然我想像单个项目一样显示它们

【问题讨论】:

  • 'sub_items' 本身就是一个数组。尝试循环通过 sub_items 打印标题。
  • 你有一个例子我怎么能做到这一点?我必须使用 Jade 来循环还是使用 Express?
  • 我没用过Jade,但我的意思是循环中的循环

标签: mongodb express pug


【解决方案1】:

根据您的 sub_items 对象尝试以下代码

  each item in [{sub_items:'sub_item_1'}]
   p=item.sub_items

将以上代码粘贴到editor

【讨论】:

    【解决方案2】:

    不确定在 Jade 中是否有更优雅的方法来执行此操作,但我只是使用了@iamwebkalakaar 建议的编辑器,测试了以下 sn-p,它似乎打印正确:

    each item in [{"sub_items" : [{"title" : "item1"}, {"title" : "item2"}]}] each subitem in item.sub_items p=subitem.title

    新的sn-p

    - var data = { "title" : "Projecten", "__v" : 0, "sub_items" : [ { "title" : "item1" }, { "title" : "item2" } ] };
    
     each subitem in data.sub_items
       p=subitem.title 
    

    【讨论】:

    • 不,我收到错误:无法读取未定义的属性“长度”
    • 我使用在线编辑器尝试了上面的 sn-p 并且打印出来看起来不错。
    • 这确实有效,但是我怎样才能使用变量 sub_items 来完成呢?
    • @Larsmanson 更新了代码——如果你的“数据”总是一个对象,而子项是一个数组,那么我刚刚添加的代码应该可以工作。 data 变量模仿你从 mongo 得到的东西。
    • 当我这样做时,我得到一个很长的输出,开头是: true function() { return this.$__.emitter[emitterFn].apply(this.$__.emitter, arguments);并且这种情况持续了很长时间
    猜你喜欢
    • 1970-01-01
    • 2021-11-24
    • 2014-08-18
    • 2021-07-08
    • 1970-01-01
    • 2013-08-03
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多