Node.js 오류: 보낸 후에 헤더를 설정할 수 없습니다.

오류 보고: Error: Can't set headers after they are sent, 어떻게 해결합니까?
응답을 사용합니다.end () 응답을 보낼 때, 이 전에return, 즉returnresponse를 추가합니다.end (), 유사한response.send () 등 함수도 Return을 추가해야 하고 모든 곳에서 추가해야 합니다. a 요청의 응답이 return을 추가하지 않아도 b 요청이 왔을 때 오류를 보고합니다.
1. 문제 설명
요청할 때 이런 문제가 발생하는 것은 브라우저가 한 번 요청한 후에 서버가 두 번과 두 번 이상의 응답을 되돌려주기 때문이다.
이러한 기능은 비동기식 콜백에서 쉽게 발생합니다.
Movie.fetch(function (err,movies) {
    if(err) {
       res.redirect('/')
    } 
       
        res.render('index',{
            title:' ',
            movies:movies
        });
   
});

만약fetch가 오류를 내면, 서버는 리디렉터리 응답을 되돌려주지만, 뒤에 또 다른 응답을 되돌려줍니다.다음과 같이 나타납니다.
 Error: Can't set headers after they are sent
2. 솔루션
매번 요청 처리에서 서버가 응답을 되돌려주면return을 사용해도 요청이 한 번 발생한 후에 두 번 응답을 되돌려주지 않습니다.
Movie.fetch(function (err,movies) {
    if(err) {
       return res.redirect('/')
    } 
       
        res.render('index',{
            title:' ',
            movies:movies
        });
   
});

좋은 웹페이지 즐겨찾기