본문 바로가기
IT

Day 2

by 깻잎쌈 2020. 1. 23.
반응형

라우터 미들웨어 :

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

 

반응형

'IT' 카테고리의 다른 글

Day6  (0) 2020.01.29
Day5  (0) 2020.01.28
Day4  (0) 2020.01.25
Day 3  (0) 2020.01.24
Day1  (0) 2020.01.20

댓글