Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var mongoose = require('mongoose');
- var bcrypt = require('bcrypt');
- var UserSchema = new mongoose.Schema({
- email: {
- type: String,
- required: true,
- trim: true,
- unique: true,
- },
- name: {
- type: String,
- required: true,
- trim: true,
- },
- favoriteBook: {
- type: String,
- required: true,
- trim: true
- },
- password: {
- type: String,
- required: true
- }
- });
- UserSchema.pre('save', function(next) {
- var user = this;
- bcrypt.hash(user.password, 10, function(err, hash) {
- if (err) {
- return next(err)
- }
- user.password = hash;
- next();
- });
- });
- UserSchema.statics.authenticate = function(email, password, callback) {
- User.findOne({ email: email })
- .exec(function (error, user) {
- if (error) {
- return callback(error);
- } else if (!user) {
- var err = new Error('User not found.');
- err.satus = 401;
- return callback(err);
- }
- bcrypt.compare(password, user.password , function(error, result) {
- if (result === true) {
- return callback(null, user);
- } else {
- return callback();
- }
- });
- });
- };
- var User = mongoose.model('User', UserSchema);
- module.exports = User;
- module.exports = User;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement