Mongoose nie ma wbudowanej walidacji dla unikalnych pól. Polecam pakiet (z tym możesz użyć unikalnego walidatora w polach e-mail i nazwy użytkownika):mongoose-unique-validator. Rozszerz swój kod o:
let uniqueValidator = require('mongoose-unique-validator');
email: {
type: String,
required: true,
trim: true,
unique: true,
index: true
},
username: {
type: String,
required: false,
trim: true,
unique: true,
index: true
}
UserSchema.plugin(uniqueValidator, {message: 'is already taken.'});