본문 바로가기

NodeJs

[NodeJS]요청 라우팅하기

POST 방식으로 전달 방법이다.

 

app.js

var express=require('express');
var http=require('http');
var static=require('serve-static');
var path=require('path');
var bodyParser=require('body-parser');

var app=express();
var router=express.Router();
app.set('port',3000);

app.use(static(path.join(__dirname, 'public')));

app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());

//아래 요청패스로 들어온 것에 대해서만 func 실행
//login2.html에서 action=요청패스 이어야 함.
router.route(/*요청패스*/'/process/login').post(function(req,res){
    console.log('/process/login 라우팅 함수에서 받음');
    var paramId=req.body.id;
    var paramPW=req.body.password;

    res.writeHead(200, {"Content-Type":"text/html;charset=utf8"});
    res.write("<h1>서버에서 로그인 응답</h1>");
    res.write("<h3>id:"+paramId+"</h3>");
    res.write("<h3>password:"+paramPW+"</h3>");
    res.end();
});

app.use('/', router);


var server=http.createServer(app).listen(app.get('port'),function(){
	console.log("익스프레스로 웹 서버 실행함");
});

아이디와 비밀번호가 body의 일부로서 전달되어 req.body.~ 라고 사용해야 한다.

라우팅을 하고자 한다면 app.use(~, router)을 꼭 명시해줘야 한다.

 

 

 

login.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>로그인</title>
    </head>
    <body>
        <h1>로그인</h1>
        <br>
        <form method="post" action="/process/login">
            <table>
                <tr>
                    <td><lable>아이디</lable></td>
                    <td><input type="text" name="id"></td>
                </tr>
                <tr>
                    <td><lable>비밀번호</lable></td>
                    <td><input type="password" name="password"></td>
                </tr>
            </table>
            <input type="submit" value="전송" name="">
        </form>
    </body>
</html>

<form method="post" action="/process/login">이 중요하다.

이때 action의 패스와 위의 router.route에서의 패스가 동일해야 한다.

 

 

 

실행화면

 

각 빈 칸에 hello, world를 입력

 

 

전송 버튼 눌렀을 때

 

 

 

파라미터 사용하기

1. GET 방식의 파라미터 : req.query 객체 사용

2. POST 방식의 파라미터 : req.body 객체 사용

3. URL 파라미터 : params 객체 사용