Node

cookie-parser모듈

jennyiscoding 2022. 7. 4. 12:07

    cookie-parser 모듈
        쿠키를 쉽게 설정하고 사용할 수 있게 도와주는 모듈로, 익스프레스 객체에 미들웨어로 등록하여 사용한다. 
        설치방법 : npm i cookie-parser

예제를 써보자. 

2가지를 import한다. 

쿠키파서는 cp라는 변수에 넣고, app.use(cp()); 로 미들웨어로 등록하여 사용한다. 

const express = require("express");
const cp = require("cookie-parser");

const app = express();
app.use(cp());

그 밑에 쿠키를 셋팅하는 코드를 써보겠다. 

쿠키를 만들 때, resp.cookie로 만든다.

key값으로 member를 사용한다. 

member에다가 value를 객체로 썼다. {id:'apple',name:'김사과',gender:'남성'}

마지막에는 쿠키생성 옵션을 쓴다. maxAge쿠키가 지속되는 시간을 의미함. 

마지막에는 showcookie로 요청을 새롭게 보낸다. 

    app.get('/setcookie',(req,resp)=>{
        resp.cookie(
            'member',
            {id:'apple',name:'김사과',gender:'남성'},
            {maxAge:1000*60*3} //3분
        )
        resp.redirect('/showcookie');
    })

naver를 보면 Request Headers에 cookie가 이렇게 날라오고 있음을 볼수있다. 

내 컴퓨터에서 네이버로 보내고있는 것이다. 

이제 showcookie 요청을 써보자.

    app.get('/showcookie',(req,resp)=>{
    resp.send(req.cookies);
    //resp.send는 페이지로 표현해주는것.
    //req.cookies를 페이지로 표현해준다.
    resp.end();
    //쿠키는 naver로 요청을 보낼 때 requires:header부분에 쿠키가 포함된 채 날라온다.(F12)
    //req에 쿠키가 포함되어있다.
    //그래서 그중에 쿠키를 꺼냄.
    })

전체코드 : 

const express = require("express");
const cp = require("cookie-parser");

const app = express();
app.use(cp());
 
    app.get('/setcookie',(req,resp)=>{
        console.log('setcookie 호출');
        resp.cookie(
            'member',
            {id:'apple',name:'김사과',gender:'남성'},
            {maxAge:1000*60*3}
        )
        resp.redirect('/showcookie');
    })

    app.get('/showcookie',(req,resp)=>{
    console.log('showcookie호출');
    resp.send(req.cookies);
 
    resp.end();
    })
app.listen(3000,()=>{
    console.log('치즈버거 3000원');
})