1+ const express = require ( 'express' ) ;
2+ const router = express . Router ( ) ;
3+ const User = require ( "../models/user" ) ;
4+ const bcrypt = require ( 'bcrypt' ) ;
5+ //login handle
6+ router . get ( '/login' , ( req , res ) => {
7+ res . render ( 'login' ) ;
8+ } )
9+ router . get ( '/register' , ( req , res ) => {
10+ res . render ( 'register' )
11+ } )
12+ //Register handle
13+ router . post ( '/login' , ( req , res ) => {
14+ } )
15+ //register post handle
16+ router . post ( '/register' , ( req , res ) => {
17+ const { name, email, password, password2} = req . body ;
18+ let errors = [ ] ;
19+ console . log ( ' Name ' + name + ' email :' + email + ' pass:' + password ) ;
20+ if ( ! name || ! email || ! password || ! password2 ) {
21+ errors . push ( { msg : "Please fill in all fields" } )
22+ }
23+ //check if match
24+ if ( password !== password2 ) {
25+ errors . push ( { msg : "passwords dont match" } ) ;
26+ }
27+
28+ //check if password is more than 6 characters
29+ if ( password . length < 6 ) {
30+ errors . push ( { msg : 'password atleast 6 characters' } )
31+ }
32+ if ( errors . length > 0 ) {
33+ res . render ( 'register' , {
34+ errors : errors ,
35+ name : name ,
36+ email : email ,
37+ password : password ,
38+ password2 : password2 } )
39+ } else {
40+ //validation passed
41+ User . findOne ( { email : email } ) . exec ( ( err , user ) => {
42+ console . log ( user ) ;
43+ if ( user ) {
44+ errors . push ( { msg : 'email already registered' } ) ;
45+ res . render ( 'register' , { errors, name, email, password, password2} )
46+ } else {
47+ const newUser = new User ( {
48+ name : name ,
49+ email : email ,
50+ password : password
51+ } ) ;
52+
53+ //hash password
54+ bcrypt . genSalt ( 10 , ( err , salt ) =>
55+ bcrypt . hash ( newUser . password , salt ,
56+ ( err , hash ) => {
57+ if ( err ) throw err ;
58+ //save pass to hash
59+ newUser . password = hash ;
60+ //save user
61+ newUser . save ( )
62+ . then ( ( value ) => {
63+ console . log ( value )
64+ req . flash ( 'success_msg' , 'You have now registered!' ) ;
65+ res . redirect ( '/users/login' ) ;
66+ } )
67+ . catch ( value => console . log ( value ) ) ;
68+
69+ } ) ) ;
70+ }
71+ } )
72+ }
73+ } )
74+ //logout
75+ router . get ( '/logout' , ( req , res ) => {
76+ } )
77+ module . exports = router ;
0 commit comments