-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
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);
})
답변을 작성해보세요.
0
0
조현영
지식공유자2018.09.27
const server = http.createServer( (req, res) =>{
const cookies = parseCookies(req.headers.cookies)
입니다. 혹시나 코드가 실행이 안 된다거나 하시면 깃허브를 참고하세요~
답변 2