inflearn logo
강의

Course

Instructor

Express Tutorial: Core APIs for Web Services

Create: Assign custom '_id' to document

5:30초때 app.post 부분 에러가 나요

418

dudghks1176604

1 asked

1

app.post('/post/upload', (req, res) => {
  counter
  .findOne({name: "counter"})
  .then((counterInfo) => {
    post
    .insertOne({
      _id: counterInfo.postNum,
      title: req.body.title,
      contents: req.body.contents,
      date : new Date()
    })
    .then(() => {
      counter
        .findOneAndUpdate(
          {name:"counter"},
          {
            $inc : {postNum: 1},
          }
        )
        .then(() => {
         res.redirect("/");
        });
    });
  })
  .catch((err) => {
    console.log(err);
    res.send("글 저장에 실패");
});
})
 
 
 
이렇게 했는데 에러가
node:internal/errors:464 ErrorCaptureStackTrace(err);
 
    at new NodeError (node:internal/errors:371:5)
    at ServerResponse.setHeader (node:_http_outgoing:576:11)
    at ServerResponse.header (D:\inflearn-express\node_modules\express\lib\response.js:776:10)
    at ServerResponse.location (D:\inflearn-express\node_modules\express\lib\response.js:893:15)
    at ServerResponse.redirect (D:\inflearn-express\node_modules\express\lib\response.js:931:18)
    at D:\inflearn-express\index.js:38:13
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  code: 'ERR_HTTP_HEADERS_SENT'
}
[nodemon] app crashed - waiting for file changes before starting...
 
이렇게 나길래 찾아보니까 이미 응답을 보냈는데 한번더 응답을 보내려 할때 서버에서 충돌이 나서 오류가 나는거라고 하더라구요? 그래서 
res.redirect("/"); 여기를
return res.redirect("/");
이렇게 고치니까 에러가안나는데 맞는건가요???

express

Answer 1

0

pandacoding

아닙니다!

해당 api 규칙은 post doc를 저장하고, 저장 여부에 따라 응답을 한번만 실행하기에 응답을 중복해서 보낼 일이 없습니다. (말씀해주신 에러가 응답을 여러번 보낼 때 발생하는 에러는 맞습니다.)

return 구문을 통해 에러가 해결이 된 것은,

api를 응답과 동시에 요청을 끝내서 해결이 된 것 같습니다.

제 생각에는 현재 수강자분 코드에서 라우팅 규칙이 조금 꼬여있는 것 같은데,

크게 확인할 수 있는 에러가 없다면 상관 없겠지만 조금 찝찝하시다면

제가 코드를 확인할 수 있는 깃헙링크 첨부해주시면 확인해보도록 하겠습니다 :)

0

dudghks1176604

라우팅 규칙 꼬인게 맞는거 같아요!
뒷강의 수강하다가 다시 return 지우니까
에러가 안뜨네요 답변감사합니다

map API

0

36

1

nodejs 터미널 인식

0

39

1

미들웨어 체인 구현 보다가 생긴 궁금증에 대해 질문 드려요!

0

103

2

학습 방향성

0

75

1

넥스트 버젼 질문

0

78

2

로그인시 401 Unauthorized 오류가 뜹니다

0

89

1

[해결]그랩님 답변 주세요.

0

161

2

그랩님의 답변을 기다립니다/102강 전반적인 에러

0

141

2

프로젝트 환경 세팅할 때 최신 노드 버젼을 사용하시는 분들은 참고하셔도 좋을 것 같아요~

2

80

1

[그랩님께]101강 안드로이드 에러들(Key prop)해결방법 궁금합니다.

0

123

2

깃헙 질문

0

79

2

강의 1-1 수업노트의 로드맵 링크가 작동하지 않습니다.

0

74

1

[재질문][그랩님 답변 부탁드립니다]101강

0

140

2

[그랩님 답변 부탁드립니다]101강 Axios 에러와 502 Bad Gateway 질문

0

97

2

Ngrok 설치 후 forwarding Url 에러

0

133

2

[그랩님께,Ngrok 악성코드 인식 해결방법]질문 드립니다.

0

217

2

Ngrok 설치 후 forwarding Url로 연결 불가

0

135

1

aws - lightsail 이용 관련

0

56

1

강의자료는 어디서 다운받나요?

0

110

3

안녕하세요 선생님 도와주세요

0

142

1

(3강 1강의) mongoDB 연결 및 데이터베이스 생성이 안 돼요

0

110

1

mongoDB 어플리케이션 연결이 안됩니다...

0

326

1

myLogger 미들웨어가 작동하지 않는 경로가 있습니다.

0

394

1

npm 에러

1

324

2