2015-05-29 4 views
0

Ошибка. Любая идея, как ее решить?Вложенные поля «Невозможно прочитать свойство« zip »неопределенного»

Объект из MongoDB:

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

Запрос к БД:

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

user.address не определен (по крайней мере, в некоторых случаях), и поэтому попытка получить доступ к user.address.zip в файле нефрита приводит к ошибке.

Возможные решения включают в себя:

  • Возможно, адрес не является обязательным полем в вашей БД схемы или разрешается быть неопределенным. Если это так, возможно, вы можете это сделать.

  • Вы можете добавить код перед вызовом res.render(), который проверяет, не определено ли user.address. Если это так, установите для него значение по умолчанию (например, объект с zip, установленным как пустая строка).

+0

Действительно. user.address не определено – burseaner

Смежные вопросы