使用POST Post
的典型示例,一切似乎都按预期工作,并且它将User
ObjectId保存在数据库等中。
当返回结果时,我似乎无法通过
来填充用户Posts.createAsync(req.body)
.then(saveUpdates(req.body))
.then(responseWithResult(res, 201));
function saveUpdates(updates) {
return function (entity) {
var updated = _.merge(entity, updates);
return updated.saveAsync()
.spread(function (updated) {
return updated;
});
};
}
在这里我需要它来重新填充并返回填充Post
User
模型
function responseWithResult(res, statusCode) {
statusCode = statusCode || 200;
return function (entity) {
if (entity) {
// Here's where I've tried just about everything I can think of
// entity.populate('user') (doesn't work)
res.status(statusCode).json(entity);
}
};
}
注意:在GET中一切正常并填充
User
,但由于某种原因,典型的.populate().execAsync()
似乎不适用于此...
Posts.find({ "team" : req.params.id})
.populate({ path: 'user' })
.execAsync(function (err, posts) {
res.json(posts);
});
POST回归中我缺少什么?
模特不是什么花哨的东西,基本上只是:
var PostsSchema = new Schema({
user : {
type: Schema.ObjectId,
ref: 'User'
},
message : String
});
var UserSchema = new Schema({
name: String,
// etc etc
});