Node.js 오류: 보낸 후에 헤더를 설정할 수 없습니다.
3682 단어 앞쪽에 큰 솥이 있다.node.js
응답을 사용합니다.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
});
});
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Atom에서 sass를 사용하고 싶었기 때문에 그 방법을 정리했습니다.이전에는 could9에서 sass를 사용하고 있었지만, 언제나 사용하고 있는 에디터의 atom에 도입하려고 생각했기 때문에. 배포에는 "nodo.js"와 "node-sass"의 설치가 필요합니다. Atom에는 패키지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.