I am trying to normalize email addresses in lower case before they are stored in the database. Setters on mongoose models are great for this, and they work on simple models. However, when I try to set setLoader on a nested object where the email is stored inside the "owner", I getTypeError: Cannot call method 'toLowerCase' of undefined
toLower (v) {return v.toLowerCase (); }
Failure:
var BusinessSchema = new mongoose.Schema({
owner: {
email: { type: String, required: 'Email adres mag niet leeg zijn.', set: toLower, get: toLower, index: { unique: true } },
password: { type: String, required: 'Wachtwoord mag niet leeg zijn.' }
}
});
It works:
var UserSchema = new Schema({
email: { type: String, set: toLower }
});
Jorre source
share