Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express');
- var router = express.Router();
- var exphbs = require('express-handlebars');
- var passport = require('passport');
- var LocalStrategy = require('passport-local').Strategy;
- var cand = require('../models/cand');
- // var jobs = require('jobs');
- var mongoose = require('mongoose');
- var upload = require('express-fileupload');
- // Register
- router.get('/candidate-register' , function(req,res){
- res.render('candidate-register');
- });
- // login
- router.get('/candidate-login' , function(req,res){
- res.render('candidate-login');
- });
- //add jobs
- // router.get('/addjob' , function(req,res){
- // res.render('addjob');
- // });
- // Register
- router.post('/candidate-register' , function(req,res){
- var fname = req.body.fname;
- var lname = req.body.lname;
- var email = req.body.email;
- var phnno = req.body.phnno;
- var password = req.body.password;
- var password2 = req.body.password2;
- var username = req.body.username;
- if(req.files){
- console.log(req.files);
- var file = req.files.filename;
- filename= file.name;
- file.mv("./uploads/" + filename , function(err){
- if(err){
- req.flash('error' , " error while uploading resume");
- if( file.mimetype != 'application/pdf') { req.flash('error', "file must be a pdf"); }
- }
- })
- }
- //validations
- req.checkBody('fname' , 'first name is required').notEmpty();
- req.checkBody('lname' , 'last name is required').notEmpty();
- req.checkBody('email' , 'email is not valid').isEmail();
- req.checkBody('phnno' , 'phnno is required').isMobilePhone();
- req.checkBody('password' , 'password is required').notEmpty();
- req.checkBody('password2' , 'passwords do not match').equals(req.body.password);
- req.checkBody('username' , 'username name is required').notEmpty();
- var errors = req.validationErrors();
- if(errors && errors.length > 0)
- {
- return res.render('company-register' ,{
- errors:errors
- });
- // console.log('yes...');
- }
- else{
- var newcand = new cand({
- _id: new mongoose.Types.ObjectId(),
- fname: fname,
- lname: lname,
- email: email,
- phnno: phnno,
- password: password,
- username: username
- });
- cand.createUser(newcand, function(err, cand){
- if(err && err.code == 11000 || err && err.name == 'MongoError')
- {
- // console.log(err, err.name, err.message, err.code);
- // res.render('company-register' ,{
- // errors:errors
- // });
- console.log("GOt Error");
- req.flash("error", "email already registered");
- res.redirect('/users/company-register');
- return ;
- }
- console.log(cand);
- req.flash('success_msg' , 'you are registered and can now login');
- res.redirect('/users/company-login');
- });
- }
- // console.log(fname);
- });
- // router.post('/addjob' , function(req,res){
- // var company = req.body.company;
- // var job = req.body.job;
- // var details = req.body.details;
- //validations
- // req.checkBody('company' , 'company name is required').notEmpty();
- // req.checkBody('job' , 'post name is required').notEmpty();
- // req.checkBody('details' , 'details are required').notEmpty();
- // var errors = req.validationErrors();
- // if(errors)
- // {
- // res.render('addjob' ,{
- // errors:errors
- // });
- // // console.log('yes...');
- // }
- // else{
- // var newJob = new Jobs({
- // _id: new mongoose.Types.ObjectId(),
- // company:company,
- // job:job,
- // details:details
- // });
- // newJob.save(function(err){
- // if(err) throw err;
- // console.log(newJob);
- // });
- // req.flash('success_msg' , 'job added!! ');
- // res.redirect('/users/addjob');
- // }
- // newJob.save(function(err) {
- // if (err) throw err;
- // console.log('Jobs');
- // });
- // router.get('/' , function(req,res){
- // Jobs.find({})
- // .exec(function(err , job){
- // if (err) throw err;
- // else{
- // res.json(job);
- // }
- // })
- // });
- // var applybtn = document.querySelector('#applybtn');
- // applybtn.addEventListener('click', function(){
- // router.post( function(req,res){
- // var company = apple;
- // var newUser = new User({
- // _id: new mongoose.Types.ObjectId(),
- // company:company
- // });
- // });
- // //job application
- // router.post( function(req,res){
- // var company = apple;
- // });
- //declare this strategy as local-cand instead of local
- passport.use('local-cand', new LocalStrategy(
- function(username, password, done) {
- cand.getUserByEmail(username , function(err , usr){
- if(err) throw err;
- if(!usr){
- return done(null , false , {message: 'Unknown User'});
- }
- cand.comparePassword(password , usr.password , function(err , isMatch){
- if(err) throw err;
- if(isMatch){
- return done(null , usr);
- }
- else{
- return done(null ,false , {message: 'INVALID PASSWORD!!'});
- }
- });
- });
- }));
- // passport.serializeUser(function(cand, done) {
- // done(null, cand.id);
- // });
- // passport.deserializeUser(function(id, done) {
- // User.getUserById(id, function(err, cand) {
- // done(err, cand);
- // });
- // });
- router.post('/candidate-login',
- passport.authenticate('local-cand', {successRedirect:'/', failureRedirect:'/users/candidate-login', failureFlash: true}),
- function(req, res) {
- // If this function gets called, authentication was successful.
- // `req.user` contains the authenticated user.
- req.session.userType = 'cand';
- res.redirect('/');
- });
- router.get('/logout' , function(req , res){
- req.logout();
- req.flash('success_msg' , 'you are logged out');
- res.redirect('/users/candidate-login');
- });
- module.exports = router
Add Comment
Please, Sign In to add comment