Javascript supprimer la propriété de l'objet ne fonctionne pas

Je suis en cours d'exécution de certains projets sur MEAN.js et j'ai un problème suivant. Je veux faire de l'utilisateur le profil du calcul et de l'enregistrer dans la base de données. Mais il y a un problème avec la méthode des utilisateurs modèle:

UserSchema.pre('save', function(next) {
    if (this.password && this.password.length > 6) {
        this.salt = new Buffer(crypto.randomBytes(16).toString('base64'), 'base64');
        this.password = this.hashPassword(this.password);
    }
    next();
});

Si je vais envoyer un mot de passe avec mes modifications, il va modifier les informations d'identification, de sorte que l'utilisateur est impossible de se connecter la prochaine fois. Je veux supprimer le mot de passe de l'utilisateur de l'objet avant de l'enregistrer, mais je ne suis pas en mesure de le faire (regardons les commentaires dans mon code ci-dessous):

exports.signin = function(req, res, next) {
    passport.authenticate('local', function(err, user, info) {
        if (err || !user) {
            res.status(400).send(info);
        } else {
            /* Some calculations and user's object changes */
            req.login(user, function(err) {
                if(err) {
                    res.status(400).send(err);
                } else {
                    console.log(delete user.password); //returns true
                    console.log(user.password); //still returns password :(
                    //user.save();
                    //res.json(user);
                }
            });
        }
    })(req, res, next);
};

Quel est le problème? Pourquoi la suppression de la méthode renvoie true, mais rien ne se passe? Merci pour votre aide 🙂

Pas de mode strict supprimer retournera vrai même lorsque les biens ne peuvent pas être supprimés. Également supprimer retourne true, et n'ont aucun effet lorsque la propriété est obtenue par le biais de la chaîne de prototype.
'use strict'; est la première ligne de mon fichier contrôleur. Mais comment puis-je supprimer le mot de passe de la propriété?
Il semble peu probable d'être le cas, mais avez-vous vérifié si le password propriété est en fait une propriété de la user objet et ne vient pas de quelqu'un sur la chaîne de prototype (hasOwnProperty)? Le paramètre undefinedne sera pas suffisant (désolé, pas d'expérience avec une moyenne de-pile)? Aussi loin que l'encodage json va il devrait y avoir aucune différence dans le résultat.
nope, la définition de la propriété non définie ne fonctionne pas ... hasOwnProperty retourné false, comme vous l'avez prévu

OriginalL'auteur ketysek | 2015-10-20