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 객체 사용