ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 02. ECMA6 로 해보기 ( Login ) [Node.js]
    NodeJS 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>



    반응형

    댓글

Designed by Tistory.