我的 Controller 中有以下代码,从mongo检索对象并将其发送给客户端:

 index: function(req, res){
    List.find({user:req.session.user.id}).exec(function foundLists(error, foundLists) {
        if(error) {
            return res.json({error:error});
        } else {
            return res.view({ title:'Lists',lists:foundLists });
        }
    });
 }

在我看来,我将执行以下操作:
extends ../layout
  block content
    .container
        p #{lists}

哪个呈现:[object Object],[object Object]
如果我做p= JSON.stringify(lists)
它呈现:
[{"user":"546109c0d640523d1b838a32","name":"third","createdAt":"2014-11-11T19:39:36.966Z","updatedAt":"2014-11-11T19:39:36.966Z","id":"546265f83e856b642e3b3fed"},{"user":"546109c0d640523d1b838a32","name":"forth","createdAt":"2014-11-11T19:42:09.268Z","updatedAt":"2014-11-11T19:42:09.268Z","id":"546266913e856b642e3b3fef"}]

我正在努力实现:
#lists
    each list in lists
       p #{list}

但是我得到这个错误:Cannot read property 'length' of undefined
我正在使用Sails和Jade 1.7.0

最佳答案

您有一个对象数组,因此如果执行each list in lists,则list是一个对象。我认为Jade需要一个字符串。如果您输入p #{list.name}或类似的东西应该起作用。

如果您想显示所有内容,可以尝试嵌套循环,例如

each list in lists
    each item in list
        p #{item}

关于node.js - Jade无法在每个循环中读取undefined的 'length'属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26884962/

10-16 12:35
查看更多