//모듈을 추출합니다. 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></body> </html>login page </head> <body>Login Page
여기까지 여기서 head 태그는 진짜로 html 태그로 인식해서 잘 안먹는데,,, html 모드에서 <은 < 로 , >은 > 로 변환하여 입력하면 원하는대로 태그기호가 된다.