ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Node.js 연동 ajax 기본
    WEB 2022. 9. 29. 11:56

    폴더수준으로 관리하기 위해서는 로컬프로젝트로 생성해야 함

    1. 폴더생성

    2. npm init

    3. npm install --save express

     

     

    단순 로그인과 route등을 포함한 기본형은 아래와 같다.

     

    -server.js

    단순 로그인부분을 포함한 ajax 연동 기본형

     

    var fs = require('fs');

    var express = require('express');

    var cookieParser = require('cookie-parser');

    var app = express();

    var http = require('http').Server(app);

    var bodyParser = require('body-parser');  // 책과는 다르게 body-parser 모듈이 express와는 따로 설치해줘야함. cmd에서 "npm installs body-parser" <br/> 

              // body-parser은 POST요청 데이터를 추출하는 미들웨어임. 이걸 사용하면 request객체에 body 속성이 부여됨.

     

     

     

    // 미들웨어를 설정합니다. 

    app.use(bodyParser.json())

    app.use(bodyParser.urlencoded({ extended: true }));  // extended:true를 해줘야 한다 .왜냐하면 url인코딩이 계속 적용될지 1번만 적용할지 묻는 것이기 때문

    app.use(cookieParser());

    app.use(express.static(__dirname));

     

    // 라우터를 설정합니다. 

    app.get('/', function(request, response){

    if ( request.cookies.auth){

            //response.send('<h1>Login Success</h1>');

            response.sendfile('starter.html');

        } else {

         response.redirect('/login');

        }

    });

     

    app.get('/login', function(request, response){

        response.sendfile('login.html');

    });

     

    app.get('/logs', function(request, response){

        if ( request.cookies.auth){

            //response.send('<h1>Login Success</h1>');

            response.sendfile('logs.html');

        } else {

         response.redirect('/login');

        }

    });

     

    app.post('/login', function(request, response){

        // 쿠키를 생성합니다. 

        var login = request.body.login;  // 변수를 받을때 post 방식은 request 안에 body 객체에서 받아온다. 

        var password = request.body.password;  // var login = request.param("login")으로 받아오는 것도 가능 이건 get 방식

         

        // 출력합니다. 

        console.log(login, password);

        console.log(request.body);

         

        // 로그인을 확인합니다. 

        if(login == 'admin' && password == '1234'){

            // 로그인 성공

            response.cookie('auth', true);

            response.redirect('/');

        } else {

            // 로그인 실패

            response.redirect('/login');

        }

    });

     

    app.get("/test", function(request, response) {

     response.sendfile('test.html');

    });

     

    app.post('/ajax_test', function(request, response){

    console.log(request.body);

     

       /*var pr1 = request.param('param1');

    var pr2 = request.param('param2');

    response.send({

    param1: pr1,

    param2: pr2,

    result: "data end!"

    });*/

    response.send(request.body);

    });

     

     

    app.post('/logout', function(request, response){

     response.clearCookie('auth');

     response.redirect('/');

    });

     

    app.get("*", function(request, response) {

    response.sendfile('404.html');

    });

     

     

    http.listen(1337);

    console.log('Server running at http://127.0.0.1:1337/');

     

    http.listen('3000', function() {

    console.log("server on!");

    })

     

     

     

    -test.html

    단순  ajax 연동 기본형

    <!doctype html>

    <html>

     <head>

      <meta charset="UTF-8">

      <script src="plugins/jQuery/jquery-2.2.3.min.js"></script> 

      <script>

       $(document).ready(function(){

        $('#calcBtn').click(function() {

           $.ajax({

              url : 'http://127.0.0.1:1337/ajax_test',

              method : 'POST',

              dataType : 'json',

              data : {param1 : '입력값1', param2 : '입력값2'},

              success : function(response) {

                $('#div1').html(response.result);

                $('#div2').html(response.param1);

                $('#div3').html(response.param2);

              }

           })

         })

       });

      </script>

     </head>

     <body>

      <button id='calcBtn'>test</button>

      <div id='div1'></div>

      <div id='div2'></div>

      <div id='div3'></div>

     </body>

    </html>

    'WEB' 카테고리의 다른 글

    InfluxDB 1.8.1 윈도우에서 node.js 사용  (0) 2023.07.17
    InfluxDB 1.8.1 윈도우 설치  (0) 2023.07.17
    pm2 명령어를 찾을 수 없습니다.  (0) 2022.09.27
    mariadb 최초 설정  (1) 2022.09.26
    공공데이터포털을 통한 날씨 받기  (0) 2021.07.05

    댓글

Designed by Tistory.