12-22 18:59
Notice
Recent Posts
Recent Comments
관리 메뉴

Scientific Computing & Data Science

[Programming / WebApp] Express-Cookies 본문

Programming/Web App

[Programming / WebApp] Express-Cookies

cinema4dr12 2016. 9. 15. 21:34

이번 글에서는 Express Framework에서 Cookies를 다루어 보도록 하겠다.
그렇다면 Cookies는 무엇이고 어떤 때 사용할까?
우선 Cookies의 정의는, "Server 요청에 의해 Client 측에 전달되고 저장되는 작은 파일(또는 데이터)"이며, 
웹 페이지가 로딩 될때마다 Cookie는 request로 보내어진다.
이를 통해 사용자의 활동을 추적하는 용도로 사용할 수 있으며, 이 외에도 다음과 같은 용도가 있다:

· Session 관리
· 개인화 (맞춤형 시스템)
· 사용자 추적

Cookie Parser 설치

Node.js의 Cookie Parser 역시 Node Package Manager(NPM)로 설치가 가능하다:

> npm install --save cookie-parser


활용

Cookies를 사용하려면 app.js에 다음 코드를 추가한다.
(Express Generator를 통해 Project를 생성하였다면 이미 추가되
어 있을 것이다.)

[{EXPRESS_PROJECT_ROOT}/app.js]

var cookieParser = require('cookie-parser');
...
app.use(cookieParser());


index.js에 Cookie를 생성하는 코드를 작성해 보자.

[{EXPRESS_PROJECT_ROOT}/routes/index.js]

/* GET home page. */
router.get( '/', function( req, res, next ) {
  res.cookie('name', 'express').send('cookie set');
} );


웹 브라우저 주소창에 주소('/')를  입력한 후 개발자 도구를 열어 Application 탭 > Cookies > http://localhost:3000을 클릭하면 저장된 Cookies 내용을 확인할 수 있다.

또한 개발자 도구의 Console에서 console.log(document.cookie)를 입력하면 기록된 Cookies를 확인할 수 있다.


Cookies 만료시간 설정

Cookies의 만료시간은 'maxAge' 속성을 이용하여 밀리초(ms) 단위로 설정할 수 있다.
가령, 다음과 같이 만료시간을 
360000 ms(6분)로 설정하면,

/* GET home page. */
router.get( '/', function( req, res, next ) {
  res.cookie('name', 'my_cookie', {maxAge: 360000}).send('cookies set');
} );

개발자 도구에서 만료시간을 확인할 수 있다.

Server 측에서 Client에 저장된 Cookie를 읽을 수 있으며, index.js의 테스트 코드는 다음과 같다.

router.get( '/readcookie', function( req, res, next ) {
  var name = req.cookies.name;
  console.log("name cookie is :" + name);
  res.end();
} );

웹 브라우저 주소창에 "/readcookie" 경로 주소를 입력하면,

위와 같이 Command Line Tool에서 Cookie 값을 확인할 수 있다.

Comments