src/models/User.js
const mongoose = require('mongoose');
const validator = require('validator');
const mongodbErrorHandler = require('mongoose-mongodb-errors');
const passportLocalMongoose = require('passport-local-mongoose');
const { Schema } = mongoose;
mongoose.Promise = global.Promise;
const userSchema = new Schema({
email: {
type: String,
unique: true,
lowercase: true,
trim: true,
validate: [validator.isEmail, 'Invalid Email Address'],
require: 'Please supply an email address',
},
name: {
type: String,
required: 'Please, supply a name',
trim: true,
},
resetPasswordToken: String,
resetPasswordExpires: Date,
created: {
type: Date,
default: Date.now,
},
});
userSchema.plugin(passportLocalMongoose, { usernameField: 'email' });
userSchema.plugin(mongodbErrorHandler);
module.exports = mongoose.model('User', userSchema);