text: var mongoose = require('mongoose');
  var bcrypt= require('bcrypt-nodejs');
  var Schema = mongoose.Schema;
  
  //Define User Schem
  var userSchema = new Schema({
      username:{
          type:String,
          unique:true,
          required:true
      },
      password:{
          type:String,
          required:true
      }
  });
  
  //Execute before each user.save() call
  userSchema.pre('save', function(callback) {
      var user = this;
      console.log("before saving the use into DB");
      // Break out if the password hasn't changed 
      if (!user.isModified('password')) return callback();
    
      // Password changed so we need to hash it
      bcrypt.genSalt(5, function(err, salt) { 
        if (err) return callback(err);
    
        bcrypt.hash(user.password, salt, null, function(err, hash) {
          if (err) return callback(err);
          user.password = hash;
          callback();
        });
      });
    });
  
    userSchema.methods.verifyPassword = function(password, cb) {
      bcrypt.compare(password, this.password, function(err, isMatch) {
        if (err) return cb(err);
        cb(null, isMatch);
      });
    };
  
  module.exports = mongoose.model('User',userSchema);