//모듈을 추출합니다. 
var fs = require('fs');
var http = require('http');
var express = require('express');
var bodyParser = require('body-parser');  // 책과는 다르게 body-parser 모듈이 express와는 따로 설치해줘야함. cmd에서 "npm installs body-parser" <br/> 
          // body-parser은 POST요청 데이터를 추출하는 미들웨어임. 이걸 사용하면 request객체에 body 속성이 부여됨.

//서버를 생성합니다.
var app = express();

// 미들웨어를 설정합니다. 
app.use(express.cookieParser());
app.use(bodyParser.urlencoded({ extended: true }));  // extended:true를 해줘야 한다 .왜냐하면 url인코딩이 계속 적용될지 1번만 적용할지 묻는 것이기 때문
app.use(bodyParser.text());  // 찾아보니 있어서 넣어봄 의미는 잘 모름
app.use(app.router);

// 라우터를 설정합니다. 
app.get('/', function(request, response){
	if ( request.cookies.auth){
		response.send('<h1>Login Success</h1>');
	} else {
		response.redirect('/login');
	}
});

app.get('/login', function(request, response){
	fs.readFile('login.html', function(error, data){
		//console.log(e)
		response.send(data.toString());
	});
});

app.post('/login', function(request, response){
	// 쿠키를 생성합니다. 
	var login = request.body.login;  // 변수를 받을때 post 방식은 request 안에 body 객체에서 받아온다. 
	var password = request.body.password;  // var login = request.param("login")으로 받아오는 것도 가능 이건 get 방식
	
	// 출력합니다. 
	console.log(login, password);
	console.log(request.body);
	
	// 로그인을 확인합니다. 
	if(login == 'rint' && password == '1234'){
		// 로그인 성공
		response.cookie('auth', true);
		response.redirect('/');
	} else {
		// 로그인 실패
		response.redirect('/login');
	}
});


// 서버를 실행합니다. 
http.createServer(app).listen(52273, function(){
	console.log('Server running at http://127.0.0.1:52273');
});

 

아래는 login.html 파일이다.

 


<!DOCTYPE html>
<html>
  <head>
    login page    
  </head>
    <body>  
 
  	

Login Page


User Name:
Password:
</body> </html>

여기까지 여기서 head 태그는 진짜로 html 태그로 인식해서 잘 안먹는데,,, html 모드에서 <은 &lt; 로 , >은 &gt; 로 변환하여 입력하면 원하는대로 태그기호가 된다.

  1. 김동훈 2019.11.21 12:40

    hello world

+ Recent posts