[Node.js express] alert경고창 띄운후 페이지이동 (한글깨짐 해결하기)

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 경고창을 한글로 띄울 때 한글이 깨지는 현상도 방지할 수 있습니다.

Top