반응형
라우터 미들웨어 :
1.요청 url을 일일이 확인해야하는 번거로움 해결하기위해 사용
2. 사용자가 요청한 기능을 요청 패스( 예: /process/login) 를 기준으로 구별.
login2.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 테스트2</title>
</head>
<body>
<h1>로그인</h1>
<br>
<form method="post" action="/process/login2" > <!-- process 추가 -->
<table>
<tr>
<td><label>아이디</label></td>
<td><input type="text" name="id" /></td>
</tr>
<tr>
<td><label>비밀번호</label></td>
<td><input type="password" name="password" /></td>
</tr>
</table>
<input type="submit" value="전송" name=""/>
</form>
</body>
</html>
app.js
--> localhost:3000/login2.html (/public 생략
var express = require('express'),
http = require('http'),
path = require('path');
var bodyParser = require('body-parser'),
static = require('serve-static');
var app = express();
app.set('port', process.env.PORT || 3000);
// https://www.npmjs.com/package/body-parser
app.use(bodyParser.urlencoded({extended:false}));
// application/json 형식으로 전달된 요청 파라미터를 파싱할 수 있음
app.use(bodyParser.json());
app.use(/*'/fake',*/ static(path.join(__dirname, 'public')));
/*app.use(function(req,res,next){
console.log('첫번재 미들웨어에서 요청을 처리함');
0
var paramId = req.body.id || req.query.id;
var paramPassword = req.body.password || req.query.password;
res.writeHead('200', {'Content-Type':'text/html;charset=utf8'});
res.write('<h1>Express 서버에서 응답한 결과.</h1>');
res.write('<div><p>Param id : ' + paramId + '</p></div>');
res.write('<div><p>Param password : ' + paramPassword + '</p></div>');
res.end();
}); */
var router = express.Router();
router.route('/process/login2').post(function(req,res){
console.log('/process/login2 처리함');
var paramId = req.body.id || req.query.id;
var paramPassword = req.body.password || req.query.password;
res.writeHead('200', {'Content-Type':'text/html;charset=utf8'});
res.write('<h1>Express 서버에서 응답한 결과.</h1>');
res.write('<div><p>Param id : ' + paramId + '</p></div>');
res.write('<div><p>Param password : ' + paramPassword + '</p></div>');
res.write("<br><br><a href='/login2.html'> 로그인 페이지로 back</a>");
//app.use(/*'/fake',*/ static(path.join(__dirname, 'public')));
// /public 생략했기때문에 a href='/public/login2.html 에서도 public 생략
res.end();
console.log('id :'+ paramId);
console.log('pass : '+paramPassword);
})
//라우터 객체를 app 객체에 등록
app.use('/', router);
app.listen(app.get('port'), function(){
console.log('Server started');
})
참고
반응형
댓글