Comment faire pour intercepter l'erreur lors de l'insertion d'un MongoDB document qui viole un index unique?

Je suis en train de construire une MOYENNE app.

C'est mon nom d'utilisateur de schéma, le nom d'utilisateur doit être unique.

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

module.exports = mongoose.model('User', new Schema({ 
    username: { type: String, unique: true }
}));

Sur mon post itinéraire-je économiser de l'utilisateur comme ceci:

app.post('/authenticate', function(req, res) {
        var user = new User({
            username: req.body.username
        });

        user.save(function(err) {
            if (err) throw err;

            res.json({
                success: true
            });

        });
    })

Si je poste avec le même nom d'utilisateur de nouveau, j'obtiens cette erreur:

MongoError: insertDocument :: causée par :: 11000 E11000 double de la clé
indice d'erreur:

Quelqu'un peut m'expliquer comment au lieu de l'erreur d'envoyer un json comme { succes: false, message: 'User already exist!' }

Remarque: Après que je poste de l'utilisateur que je vais automatiquement authentificate, n'ont pas besoin de mot de passe ou quelque chose d'autre.

InformationsquelleAutor Hiero | 2015-06-02