Node.js 如何在后期保存中进行mongoose查询?
如何在用户架构的后期保存中查询公司名称Node.js 如何在后期保存中进行mongoose查询?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,如何在用户架构的后期保存中查询公司名称 UserSchema.post('save', function (doc) { console.warn("POST SAVE", doc); console.log(this, "---------------------------------------------"); this.findOne({_id:doc._id}) .populate('company') .exec(function (err
UserSchema.post('save', function (doc) {
console.warn("POST SAVE", doc);
console.log(this, "---------------------------------------------");
this.findOne({_id:doc._id})
.populate('company')
.exec(function (err, _user) {
if(err) return next(err);
else{
// console.warn("_USER", _user);
if(_user.company.name) doc.companyName = _user.company.name;
Sync.syncUser(doc)
.then(function (_r) {
// console.log(_r,"<-----------------------------------------------------------");
if (_r) {
console.warn("POST SAVE -> SYNC OK!");
next();
} else {
console.warn("POST SAVE -> SYNC ERR: ", err);
return next(err);
}
})
.fail(function (err) {
console.warn("POST SAVE -> SYNC ERR: ", err);
return next(err);
});
}
});
});
UserSchema.post('save',函数(doc){
控制台。警告(“保存后”,文档);
console.log(此“---------------------------------------------------”;
this.findOne({u-id:doc.\u-id})
.populate('公司')
.exec(函数(错误,\u用户){
if(err)返回next(err);
否则{
//console.warn(“\u USER”,\u USER);
如果(_user.company.name)doc.companyName=_user.company.name;
Sync.syncUser(文档)
.然后(函数(_r){
//console.log(_r,“SYNC OK!”);
next();
}否则{
console.warn(“保存后->同步错误:”,错误);
返回下一个(错误);
}
})
.失败(功能(错误){
console.warn(“保存后->同步错误:”,错误);
返回下一个(错误);
});
}
});
});
使用此代码,我有一个错误:
TypeError:this.findOne不是函数
尝试User.findOne()
而不是this
或使用this.constructor.findOne
这是你可能要做的第一件事
var User=mongoose.model('User',UserSchema)
尝试User.findOne()
而不是this
或使用this.constructor.findOne
这是你可能要做的第一件事
var User=mongoose.model('User',UserSchema)代码>这个.constructor.findOne对我不起作用。我使用doc.constructor.findOne
这个.constructor.findOne
对我不起作用。我使用doc.constructor.findOne
您尝试了UserSchema.findOne()
而不是这个
对吗?或者this.constructor.findOne
您尝试了UserSchema.findOne()
而不是this
对吗?或者this.constructor.findOne
我使用了this.constructor.findOne
并且它工作了。非常感谢你!我使用了this.constructor.findOne
,它成功了。非常感谢你!