강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

ryu sin님의 프로필 이미지
ryu sin

작성한 질문수

Node.js 교과서 - 기본부터 프로젝트 실습까지

라우터 분기 처리와 쿠키

cookies is not defined 라는 메시지를 받고, 서버가 다운됩니다.

작성

·

610

0

안녕하세요. 좋은 강좌 그동안 잘 듣고있습니다. 이번 강좌의 후반까지 진행중에, 마지막 부분에서 서버가 다운 됩니다.

}else if (cookies.name) {

res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8' });

res.end(`${cookies.name}님 안녕하세요`);

이 부분인데요, cookies is not defined 라는 메시지를 받네요. 실제로 코드 내에서도 cookies를 지정해 주지 않긴 했는데요, 강사님의 원본 코드를 강좌 를 몇번씩 반복하면서 봐도 cookies가 정의된 부분을 찾지 못해서요 ㅇ,.ㅇ;;

제가 어딘가에서 빠뜨린 건가요?

이하는 전체 코드입니다.

const fs = require('fs');

const http = require('http');

const url = require('url');

const qs = require('querystring');

const parseCookies = (cookie = '')=>

cookie

.split(';')

.map( v=> v.split('='))

.map(([k, ...vs])=> [k, vs.join('=')])

.reduce((acc, [k, v])=>{

acc[k.trim()] = decodeURIComponent(v);

return acc;

}, {});

const server = http.createServer( (req, res) =>{

console.log(req.url, parseCookies(req.headers.cookie));

if(req.url.startsWith('/login')){

const {query} = url.parse(req.url)

const {name} = qs.parse(query)

const expires = new Date();

expires.setMinutes(expires.getMinutes() + 5);

res.writeHead(302,

{Location: '/',

'Set-Cookie': `name=${encodeURIComponent(name)};Expires=${expires.toGMTString()};

HttpOnly; Path=/`})

res.end();

}else if (cookies.name) {

res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8' });

res.end(`${cookies.name}님 안녕하세요`);

}else{

fs.readFile('./server4.html', (err, data)=> {

res.end(data);

});

}

}).listen(8080);

server.on('listening', ()=>{

console.log('8080 번 포트 서버 대기중입니다.');

})

server.on('error', (error)=>{

console.error(error);

})

답변 2

0

ryu sin님의 프로필 이미지
ryu sin
질문자

넵 답변 감사합니다. : )

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

const server = http.createServer( (req, res) =>{

const cookies = parseCookies(req.headers.cookies)

입니다. 혹시나 코드가 실행이 안 된다거나 하시면 깃허브를 참고하세요~

ryu sin님의 프로필 이미지
ryu sin

작성한 질문수

질문하기