Javascript 节点/Mongoose.populate()在创建POST和返回201后的模型
使用一个发布帖子的典型示例,一切都像预期的那样工作,它正在将用户ObjectId保存在数据库中,等等 当它返回结果时,我似乎无法让它填充用户 在这里,我需要它重新填充并返回带有填充用户的完整Post模型 注意:在GET everything中,它可以填充用户,但由于某些原因,典型的.populate.execAsync在这里似乎不起作用 我在回执中遗漏了什么 这些模型没有什么特别之处,基本上只是:Javascript 节点/Mongoose.populate()在创建POST和返回201后的模型,javascript,node.js,mongodb,mongoose,promise,Javascript,Node.js,Mongodb,Mongoose,Promise,使用一个发布帖子的典型示例,一切都像预期的那样工作,它正在将用户ObjectId保存在数据库中,等等 当它返回结果时,我似乎无法让它填充用户 在这里,我需要它重新填充并返回带有填充用户的完整Post模型 注意:在GET everything中,它可以填充用户,但由于某些原因,典型的.populate.execAsync在这里似乎不起作用 我在回执中遗漏了什么 这些模型没有什么特别之处,基本上只是: var PostsSchema = new Schema({ user : {
var PostsSchema = new Schema({
user : {
type: Schema.ObjectId,
ref: 'User'
},
message : String
});
var UserSchema = new Schema({
name: String,
// etc etc
});
execAsync不是应该返回一个承诺吗?出于某种原因,您在此处使用回调。下面的示例只是显示了.populate工作的另一个区域。如何在.createAsync.saveAsync区域内执行此操作@布雷克斯七号
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);
}
};
}
Posts.find({ "team" : req.params.id})
.populate({ path: 'user' })
.execAsync(function (err, posts) {
res.json(posts);
});
var PostsSchema = new Schema({
user : {
type: Schema.ObjectId,
ref: 'User'
},
message : String
});
var UserSchema = new Schema({
name: String,
// etc etc
});