라우터 미들웨어 :
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');
})
Express 라우팅
라우팅 라우팅은 애플리케이션 엔드 포인트(URI)의 정의, 그리고 URI가 클라이언트 요청에 응답하는 방식을 말합니다. 라우팅에 대한 소개는 기본 라우팅을 참조하십시오. 다음 코드는 매우 기본적인 라우트의 예입니다. var express = require('express'); var app = express(); // respond with "hello world" when a GET request is made to the homepage app.get
expressjs.com
참고
3. Express 시작하기 - 라우터 / 라우팅
Express 시작하기 Express 서버를 실행해 봅시다. 저번 포스트에 package.json에 대해 배울때에, start라는 scripts에 ./bin/www 를 실행하는 코드가 있었습니다. 따라서 npm 명령어로 실행해봅시다. npm start..
dalkomit.tistory.com
Node - Express [Router 객체로 라우팅 분리]
Router 객체로 라우팅 분리하기 이전 라우터를 만들 때 요청 메서드와 주소별로 분기 처리를 하느라 코드가 매우 복잡했다. if문으로 분기하여 코딩하여 보기에도 좋지 않고 확장하기도 어렵다. 익스프레스를 사용..
backback.tistory.com
댓글