Nodejs에서 alert를 사용하여 경고창을 띄워야 하는 경우가 있을 수 있습니다.
이럴 때 자바스크립트를 사용하여 경고문을 띄운 후 이동하고자 하는 페이지로 이동하는 코드까지 함께 작성해 보겠습니다.
res.write("<script>alert('페이지가 존재하지 않습니다');</script>")
res.redirect('/')
먼저 alert문과 페이지 이동을 각각 나눠서 이런 식으로 작업하게 되면 아래와 같은 오류를 만나볼 수 있습니다.
node:_http_outgoing:659
throw new ERR_HTTP_HEADERS_SENT('set');
app.get('/', (req,res)=>{
try{
const id = req.params.id
}
catch(e){
res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'})
res.write("<script>alert('오류발생'); window.location.href = '/';</script>")
}
하나의 응답 스크립트 문에서 페이지 이동까지 함께 작성하여 문제를 해결할 수 있습니다.
또한 wirteHead를 통해 utf-8로 지정해 줌으로써 alert 경고창을 한글로 띄울 때 한글이 깨지는 현상도 방지할 수 있습니다.