@@ -3,61 +3,59 @@ const queryString = require('querystring');
33const jwt = require ( 'jsonwebtoken' ) ;
44const SECRET = 'afdhasjkhdfsadjfhskdjhf' ;
55const bcrypt = require ( 'bcryptjs' ) ;
6- // const path = require('path');
7- // const fs = require('fs');
86const cookie = require ( 'cookie' ) ;
97
108function handleSignup ( req , res ) {
11- /*
12- insert data to DB
13- create a new cookie
14- redirect to home.html
15- input: username , password , email
16- */
179 let content = '' ;
1810 req . on ( 'data' , ( chunk ) => {
1911 content += chunk ;
2012 } ) ;
2113 req . on ( 'end' , ( ) => {
2214 const data = queryString . parse ( content ) ;
23- // const data = {
24- // name: 'test',
25- // password: '123',
26- // email: 'a@a.a'
27- // };
2815 if ( req . headers . cookie ) {
2916 res . writeHead ( 302 , { 'location' : '/' } ) ;
3017 res . end ( ) ;
3118 }
3219 bcrypt . hash ( data . password , 10 , ( err , hashedPassword ) => {
3320 if ( err ) {
34- res . end ( err ) ;
21+ console . log ( err ) ;
22+ res . end ( ) ;
3523 } else {
36- // console.log(hashedPassword, 'hashedPassword');
37- data . password = hashedPassword ;
38- query ( `INSERT INTO users(name , email , password) VALUES($1,$2,$3) RETURNING *` , [ data . name , data . email , data . password ] , ( err1 , record ) => {
39- if ( err1 ) {
40- res . writeHead ( 302 , { 'Location' : '/signup' } ) ;
41- res . end ( ) ;
42- } else {
43- // console.log(record);
44- jwt . sign ( { name : record [ 0 ] . name , id : record [ 0 ] . id } , SECRET , ( err2 , token ) => {
45- if ( err2 ) {
46- // console.log(err2);
47- res . writeHead ( 302 , { 'Location' : '/' } ) ;
48- res . end ( ) ;
49- } else {
50- res . writeHead ( 302 , { 'Set-Cookie' : `token=${ token } ; Max-Age=99999` , 'Location' : '/blogs' } ) ;
51- res . end ( ) ;
52- }
53- } ) ;
54- }
55- } ) ;
24+ console . log ( isValid ( data ) ) ;
25+ if ( isValid ( data ) ) {
26+ data . password = hashedPassword ;
27+ query ( `INSERT INTO users(name , email , password) VALUES($1,$2,$3) RETURNING *` , [ data . name , data . email , data . password ] , ( err1 , record ) => {
28+ if ( err1 ) {
29+ res . writeHead ( 302 , { 'Location' : '/signup' } ) ;
30+ res . end ( ) ;
31+ } else {
32+ jwt . sign ( { name : record [ 0 ] . name , id : record [ 0 ] . id } , SECRET , ( err2 , token ) => {
33+ if ( err2 ) {
34+ res . writeHead ( 302 , { 'Location' : '/' } ) ;
35+ res . end ( ) ;
36+ } else {
37+ res . writeHead ( 302 , { 'Set-Cookie' : `token=${ token } ; Max-Age=99999` , 'Location' : '/blogs' } ) ;
38+ res . end ( ) ;
39+ }
40+ } ) ;
41+ }
42+ } ) ;
43+ } else {
44+ // if data is not valid
45+ res . writeHead ( 302 , { 'Location' : '/signup' } ) ;
46+ res . end ( ) ;
47+ }
5648 }
5749 } ) ;
5850 } ) ;
5951}
6052
53+ function isValid ( data ) {
54+ return ( typeof data . name !== 'string' || data . name !== '' ) &&
55+ ( typeof data . email !== 'string' || ! data . email . match ( / ^ ( ( [ ^ < > ( ) \[ \] \\ . , ; : \s @ " ] + ( \. [ ^ < > ( ) \[ \] \\ . , ; : \s @ " ] + ) * ) | ( " .+ " ) ) @ ( ( \[ [ 0 - 9 ] { 1 , 3 } \. [ 0 - 9 ] { 1 , 3 } \. [ 0 - 9 ] { 1 , 3 } \. [ 0 - 9 ] { 1 , 3 } ] ) | ( ( [ a - z A - Z \- 0 - 9 ] + \. ) + [ a - z A - Z ] { 2 , } ) ) $ / ) ) && //eslint-disable-line
56+ ( typeof data . password !== 'string' ) && ( data . confirmPassword !== data . password ) ;
57+ }
58+
6159function handleAddBlog ( req , res ) {
6260 let content = '' ;
6361 req . on ( 'data' , ( chunk ) => {
@@ -74,8 +72,8 @@ function handleAddBlog (req, res) {
7472 } else {
7573 query ( 'INSERT INTO posts(title,contents,post_date,user_id) VALUES ($1,$2,$3,$4) RETURNING * ' , [ data . title , data . contents , data . post_date , result . id ] , ( error , res1 ) => {
7674 if ( error ) {
77- console . log ( error ) ;
78- res . end ( 'There is error' ) ;
75+ res . writeHead ( 302 , { 'Location' : '/404' } ) ;
76+ res . end ( ) ;
7977 } else {
8078 res . writeHead ( 302 , { 'Location' : '/blogs' } ) ;
8179 res . end ( ) ;
@@ -91,11 +89,11 @@ function handleAddBlog (req, res) {
9189}
9290
9391function handleEditBlog ( req , res ) {
94-
92+ // Not Implemented Yet
9593}
9694
9795function handleDeleteBlog ( req , res ) {
98-
96+ // Not Implemented Yet
9997}
10098
10199module . exports = {
0 commit comments