• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

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

18.09.27 16:03 작성 조회수 467

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

질문자

2018.10.04

넵 답변 감사합니다. : )

0

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

const cookies = parseCookies(req.headers.cookies)

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