익스프레스 및 노드를 처음 사용하고 고급 REST 클라이언트를 사용하여 앱에서 보호 된 REST 엔드 포인트를 테스트 할 때 데이터가 엔드 포인트에서 리턴됩니다. 그러나 예상대로 클라이언트에 콘솔 로그는노드가있는 익스프레스 앱에서 "오류 : 헤더를 설정할 수 없습니다"노드
"Error: Can't set headers after they are sent"
서버를 중지합니다. 여기에 SO에 대한 검색이 하나 개 이상의 응답을 보낼 때 발생하는 것 같습니다하지만 난 내 코드에서 해당 표시되지 않습니다 :
router.get('/books', userAuthenticated, function (req, res, next) {
Book.find({}, function(err, docs){
if(err) {
res.send(err)
} else {
res.send(docs);
// next();
// return;
}
})
});
오전 클라이언트로/요청/응답을 보내거나 때 예상이 오류가 서버에서 오류를 처리 할 때 뭔가 빠졌습니까?
가장 좋은 추측은 userAuthenticated 미들웨어가 응답을 보내는 것입니다. 그 함수를 확인하고, 다음에 호출하기 전에 res가 보내지지 않았는지 확인하십시오. – Brian
다음과 같이 간단하게 할 수는 있지만 여전히 같은 오류로 리팩터링 한 userAuthenticated 미들웨어가 있습니다. function userAuthenticated (req, res, next) { if (req. isAuthenticated()) { 다음 반환(); } res.redirect ('/ notloggedin'); } – user2232681
브라우저 또는 우편 배달부에서 응답을 확인하십시오. dev 콘솔을 열고 네트워킹으로 이동 한 다음/books – Brian