2017-03-15 4 views
0

Wie kann ich den Firmennamen im Post-Save des Benutzerschemas abfragen?Wie mongoose Abfrage in Post speichern?

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); 
       }); 
     } 
    }); 
}); 

Mit diesem Code habe ich einen Fehler:

TypeError: this.findOne is not a function

+0

Sie haben 'UserSc versucht hema.findOne() 'statt' this' richtig? oder 'this.constructor.findOne' –

Antwort

2

User.findOne() Versuchen statt this oder this.constructor.findOne

für die erste Art und Weise verwenden Sie könnten

var User = mongoose.model('User', UserSchema);

zu tun haben
+0

Ich benutzte' this.constructor.findOne' und es funktionierte. Vielen Dank! – Stefano