嵌套字段"无法读取属性' zip'未定义"

时间:2015-05-29 16:27:12

标签: node.js express pug

出现此错误。 知道怎么解决吗?

来自MongoDB的对象:

...
"name" : true,
"address" : {
        "zip" : "BH9AXX",
        ...

请求db:

exports.getList = function (req, res, next) {
    User.find({
        user: req.user.id
    }, function (err, users) {
        if (err) return next(err);

        return res.render('list', {
            users: users
        });

    });
};

list.jade:

each user in users
    tr
      td #{user.name}
      td #{user.address.zip}

当不使用#{user.address.zip}时,一切正常。

1 个答案:

答案 0 :(得分:1)

user.address未定义(至少在某些情况下),因此尝试访问jade文件中的user.address.zip会导致错误。

可能的解决方案包括:

  • 也许地址不是数据库模式中的必填字段,或者允许未定义。如果是这样,也许你可以把它变成必需的。

  • 您可以在调用res.render()之前添加代码,以检查user.address是否未定义。如果是这样,请将其设置为默认值(例如将zip设置为空字符串的对象)。