2017-09-10 3 views
-1

J'ai des problèmes pour implémenter une requête findOneAndUpdate.Mongoose - FindOneAndUpdate - Erreur de type

//UserController 

UserDAO                          
    ['findOneAndUpdate'](userId, {'passwordToken': passwordToken, 'resetPasswordExpires': resetPasswordExpires}) 
    .then((user) => {                       
    return MailController.forgotPasswordMail(user, hostUrl);             
    })                           
    .then((updated) => {                      
    return res.status(200).json(updated);                  
    })                           
    .catch(error => {                       
    return res.status(400).json(error);                  
    });                           

//UserDAO 

userSchema.static('findOneAndUpdate', (userId, query) => { 
    return new Promise((resolve, reject) => { 
    if (!_.isObject(query)) { 
     return reject(new TypeError('query is not a valid Object.')); 
    } 

    User 
     .findOneAndUpdate(
     {_id: userId}, 
     query, 
     {upsert: true} 
    ) 
     .exec((err, updated) => { 
     err ? reject(err) : resolve(updated); 
    }); 
    }); 
}); 

Voici les deux méthodes sur mon userController et sur mon userDAO. Une fois que je les exécute, il se déconnecte un "findOneAndUpdate.exec n'est pas une méthode". Les choses étranges, c'est que je retourne des méthodes moongose ​​comme ça.

Qu'est-ce que je fais de mal?

Répondre

0

Une fois que j'ai fini d'écrire la question, j'ai compris ce qui était le problème. Le nom de la fonction "findOneAndUpdate" s'est écrasé avec la fonction mongoose originale de findOneAndUpdate. Je change le nom de la fonction et j'ai résolu le problème!