NodeJS

02. ECMA6 로 해보기 ( Login ) [Node.js]

민돌이 2016. 11. 15. 17:17
반응형

Login


formServer.js


const http = require('http');

const fs = require('fs');

const url = require('url');

const querystring = require('querystring');

const ejs = require('ejs');


const responseHeader = {

    'Content-Type' : 'text/html'

}


const userId = 'admin';

const userPassword = '1234';


http.createServer( (request, response) => {


  const path = url.parse(request.url).pathname;


  if ( path == '/login') {

    fs.readFile('view/login.ejs', 'UTF-8', (error, data) => {

      response.writeHead(200, responseHeader);

      response.end(ejs.render(data));

    });

  }

  else if ( path == '/doLogin') {

     from 에 method ="post"가 없을때

     // GET 형식으로 Parameter를 받아 올 경우 사욜 할 수 있는 코드

     const requestInfo = url.parse(request.url);

     console.log(requestInfo);


     const params = querystring.parse(requestInfo.query);

     console.log(params);

     console.log(params.userId);

     console.log(params.userPassword);

    

    from 에 method ="post"가 있을때

    // POST 형식으로 전달된 Parameter를 받아올 경우 사용할 수 있는 코드

    console.log(request.method);

    if ( request.method == 'POST' ) {

      request.on('data', (data) => {

        console.log(data.toString(0));

        const params = querystring.parse(data.toString());

        console.log(params.userId);

        console.log(params.userPassword);


        /*

           200 -> OK

           302 -> Page Redirect 서버가 브라우저에게 명령하는 것

           400 -> Request Fail

           404 -> Page Not Found

           403 -> Access Forbiden

           500 -> Internel Server error

        */


        if ( userId == params.userId &&

             userPassword == params.userPassword ) {

          response.writeHead(302, {'location' : 'http://www.naver.com'});

          response.end('로그인 성공!');

        }

        else {

          response.writeHead(302, {'location' : '/login'});

          response.end('로그인 실패!');

        }


      });


    }

    console.log('로그인 함 ^_^//');

  }

  else {

      response.writeHead(404, responseHeader);

      response.end('페이지를 찾을 수 없습니다.');

  }


}).listen(8000);



login.ejs


<!DOCTYPE html>

<html>

  <head>

    <meta charset="utf-8">

    <title>Login</title>

  </head>

  <body>

    <div id="container">


      <form  method="post" action="/doLogin" id="loginForm" >

        <input type="text" id="userId" name='userId' />

        <input type="password" id="userPassword" name='userPassword' />

        <input type="submit" value="로그인" />

      </form>


    </div>

  </body>

</html>



반응형