최근에 공부 시작한 NodeJs교과서 책에서 나오는 예제를 진행하다가 발견하게된 오류였다.
예제 코드를 정확하게 따라서 입력했는데 해당 과정속에 오류가 발견되었다.
문제원인
res.writeHead(302, {
Location: '/',
'Set-Cookie': `name=${encodeURI(name)};
Expires=${expires.toUTCString()}; HttpOnly; Path=/`, // 이 부분에서 오류
});
자바스크립트 ES2015(ES6)에 포함된 문법인 백틱(``) 을 사용하다가 발생한 오류 이다.
어제 공부를 시작하게 되어서 어제 처음 알게된 텍스트 레터럴 부분인데 위 코드에서 'Set-Cookie':`name=${~~~}; 이 부분 다음 Expires줄 사이의 공백이 인정이 되어서 발생한 오류 인것 같다.
위 코드를 다음처럼 수정하면 해결된다.
해결방법
res.writeHead(302, {
Location: '/', // 공백 삭제
'Set-Cookie': `name=${encodeURI(name)};Expires=${expires.toUTCString()}; HttpOnly; Path=/`,
});
책 속의 예제여서 의심이 없었는데 생각보다 쉽게 해결하게 된 오류인것 같다.
백틱(``)은 정말 편한 것 같은데 사용할때 주의할 부분이 생긴것 같다. :)