2016-01-19 5 views
0
var posting = new Posting({ 
    content: fields.content, 
    creator: req.user, 
}); 

posting.save(function(err) { 
    if(err) { 
    res.status(501).json({ error: err }); 
    } else { 
    res.json({ posting: posting }); 
    } 
}); 

Модель публикации имеет creator поле, которое представляет экземпляр модели User. Экземпляр Post возвращается в форме JSON после его сохранения. Но возвращаемый экземпляр Post не содержит данных из соответствующего объекта User в своем поле creator. Он отправляет только значение id экземпляра User.Как заполнить поле в модели мангуста?

Как заполнить поле creator перед отправкой ответа?

+0

Внутри сохранить обратный вызов, попробуйте позвонить 'User.populate (posting.creator)' перед возвращением результата. Подробнее о населении [здесь] (http://devdocs.io/mongoose/api#model_Model.populate). Дайте мне знать, если это сработает, чтобы я мог ответить на ваш вопрос. – danilodeveloper

+0

не работает. Я также пробовал это: User.populate (posting, {path: 'creator', model: 'User'}); –

ответ

1

Вы должны вызвать .populate метод Posting модели на экземпляре posting:

posting.save(function(err) { 
    if(err) { 
    res.status(501).json({ error: err }); 
    } else { 
    // Populate the 'posting' object's 'creator' field. 
    Posting.populate(posting, { path: 'creator', model: 'User' }, function (err, posting) { 
     res.json({ posting: posting }); 
    }); 
    } 
}); 

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

  • Нет связанных вопросов^_^