백엔드를 맡아 프로젝트를 수행하던 중, 당연하게 될 줄만 알았던 부분에서 에러를 맞이했습니다.
Node.js 상에서 Web의 내장함수인 alert
를 실행할 수 없어서 나타난 에러입니다.
사실, Node.js 라고 해서 똑같은 Javascript겠거니~ 하고 아무 생각없이 썼다가, 에러를 맞이하고 꽤 멍을 때렸습니다.
왜인고 하니...
JavaScript도 Web과 Server에서 모두 활용될 수 있지만 사용되는 방식이 달랐습니다.
JavaScript는 하나의 언어이며, Node.js는 JavaScript라는 언어를 사용할 수 있는 환경(Runtime)입니다.
예를 들면, 같은 한국어를 사용하지만, 팀장님 앞에서의 어휘와, 친구들 앞에서의 어휘가 다른 점이 되겠습니다.
각각 다른 환경에서 사용하는 언어는 같지만, 사용하는 단어나 전달하는 내용은 매우 다르기 때문입니다. 같은 한국어지만 환경에 따라 쓰임이 달라지는 것입니다.
이 때문에, Node.js 환경에선 Web의 내장 함수인 alert
를 사용할 수 없던 것이라 생각합니다.
Node.js 상에는 이러한 경고 창을 내는 기능이 없고, 만약 서버 측에서 꼭 alert
를 사용하고자 한다면 아래와 같이 response
를 내보내야 합니다.
res.send(
`<script>
alert('이메일 인증 시간을 초과했습니다.');
location.href='${URL}';
</script>`
);