티스토리 뷰

Step1. 사전에 해야할 일


1) Mongo DB 설치

다운받는곳



2) 시스템 환경변수 추가




3) DB 실행 명령어



위 명령어를 입력하고 MongoDB를 항상 실행시켜야 한다.



4) 관련 모듈을 설치한다


package.json


아래 내용을 다운로드하고 명령 프롬프트 창에다가 

%npm install 라고 입력하면 자동으로 패키지가 생성이 된다.


5) MongoDB를 이용하여 database 입력.


입력방법은 다음과 같습니다.


1
2
3
4
5
6
1) mongo 입력
2) local와 연결 -> use local
3) DB 정보 입력
-> db.users.insert({id: 'test01', name:'소녀시대', password:'123456'}) 
4) 입력한 DB 확인하기
-> db.users.find().pretty()
cs





Step2. Express 서버 객체 생성


Express를 사용하려면 기본적으로 적용해야하는 내용들입니다.


1) Express 기본 모듈 불러오기


1
2
3
4
5
// Express 기본 모듈 불러오기
var express = require('express')
  , http = require('http')
  , path = require('path');
 
cs


  • express 모듈 : express에서 사용하는 기본 모듈
  • http 모듈 : http 통신을 하기 위한 기본 모듈
  • path 모듈 : 패스 문자열을 다루는 모듈



2) Express의 미들웨어 불러오기


1
2
3
4
// Express의 미들웨어 불러오기
var bodyParser = require('body-parser')
  , cookieParser = require('cookie-parser')
  , static = require('serve-static');
cs


  • body-parser 모듈 : POST로 요청을 했을 때 요청 파라미터를 확인할 수 있도록 만들어준 미들웨어

※ GET 방식 vs POST 방식

- GET 방식 : 헤더 부분에 요청 정보들을 넣어 보냄

- POST 방식 : 본문 부분에 요청 정보를 넣어 보냄


==> 공통적으론 '요청 정보를 보낸다'라는 점은 POST와 GET방식 둘다 같다. 하지만, 보안 등의 이슈가 있을때나 파일을 요청 정보로 넣어 보내야 하는 경우에는(ex, 파일 업로드) POST 방식을 주로  사용한다.

(*GET 방식은 보안에 취약하다.)


  • cookie-parser 모듈 : 쿠키를 설정하거나 확인하는 미들웨어

- 쿠키 : 웹브라우저에 저장되는 정보로서 일정 기간 동안 저장하고 싶을 때 사용.


  • serve-static 모듈 : static 미들웨어는, 특정 폴더의 파일들을 특정 패스로 접근할 수 있도록 만들어줌.



3) 에러 핸들러 모듈 불러오기


1
2
// 에러 핸들러 모듈 사용
var expressErrorHandler = require('express-error-handler');
cs


  • express-error-handler 모듈 : 예상치 못한 오류가 발생했을때 그 오류를 처리할 수 있는 미들웨어.

                                    --> 여기서는 404.html 오류 페이지를 응답으로 보내주는 역할을 하게 된다.



4) 세션(Session) 미들웨어 불러오기


1
2
// Session 미들웨어 불러오기
var expressSession = require('express-session');
cs


  • 세션(Session) : 상태 정보를 저장하는 역할이지만 쿠키와는 다르게 서버쪽에 저장이 된다.

   ex) 로그인 했을 때 저장되는 세션을 생각하자!

 사용자가 로그인을 하면 세션이 만들어지고 로그아웃을 하면 세션이 삭제되는 기능을 만든다고 생각하자. 이러한 기능들은 사용자가 상품 페이지처럼 접근이 제한된 페이지를 조회했을 때 로그인된 상태가 아니라면 로그인 페이지를 자동으로 열어주는 페이지를 만들 수 잇게 된다.

★ 세션을 사용할때는 쿠키도 같이 사용해야 한다.






Step3. Express 모듈 초기화



1) Express 객체 생성


1
2
// 익스프레스 객체 생성
var app = express();

cs




2) http 접속 포트 설정


1
2
// 기본 속성 설정
app.set('port', process.env.PORT || 3000); //3000번 포트로 설정.
cs



3) body-parser를 이용한 파싱


1
2
3
4
// body-parser를 이용해 application/x-www-form-urlencoded 파싱
app.use(bodyParser.urlencoded({ extended: false }))
// body-parser를 이용해 application/json 파싱
app.use(bodyParser.json())
cs

  • 위 내용을 사용하는 이유

application/x-www-form-urlencoded 형식으로 전달된 요청 파라미터를 파싱할 수 있다.

여기서는 login.html에서 입력된 값들을 파싱해온다.


  • 파싱(parsing)이란?

값들을 각각 받아보는 것.



4) public 폴더를 static으로 오픈


1
app.use('/public', static(path.join(__dirname, 'public')));
cs


이 경우는 모든 파일을 웹 서버의 루트 패스(path)로 접근할 수 있또록 만든것이다. 참고로 해당 소스코드에서는 public에 html파일들이 담겨있다.

__dirname는 현재 디렉터리라는 의미이다.



5) cookie-parser 설정

Comments