Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- elasticIP
- 리액트코드정렬
- 코딩테스트
- reacts3
- 프로그래머스
- EC2
- AWS
- dotenv
- useReducer
- 코드정렬
- 자연수 뒤집어 배열로 만들기
- 부족한 금액 계산하기
- express
- s3확장자
- react
- prettier
- max_allowed_packet
- MySQL
- 프리티어
- 자동완성방지
- 제일 작은 수 제거하기
- 커밋 한번에
- utf8mb4
- vscode
- 리액트
- axios
- Node
- interactive_timeout
- next #middleware
- .env
Archives
- Today
- Total
Sungtt
ERR_HTTP_HEADERS_SENT 본문
ERR_HTTP_HEADERS_SENT
api통신으로 mysql에 데이터를 저장하던 도중 만난 오류다.
간결하게 원인부터 설명하자면
res.응답메서드는 한번만 사용이 가능한데,
짜여진 코드에선 중복호출을 하게되어 오류가 나는것이다.
현재 코드에선 간단하게 res가 중복호출되는 부분을 찾아서
지워주기만 해도 해결되었다.
map함수안에 res가 들어있어 중복호출이 되고있었음
이때 2차적으로 해야할것은 에러핸들링의 필요성을 느꼈다.
오류가 날때마다 서버가 강제종료되어 번거로웠는데
에러를 핸들링하게된다면 서버가 종료되는일은 막을 수 있다.
before 코드
app.post('/api/get', function(req, res) {
req.body.map((i) => {
console.log(i.title);
const title = i.title;
const date = i.date;
const sqlQuery = "INSERT INTO event_olive (date,title) VALUES (?,?)";
db.query(sqlQuery, [date, title], (err,result) => {
res.send('succ') // 이 부분에서 중복호출로 인해 오류
});
});
});
after 코드
app.post('/api/get', function(req, res) {
req.body.map((i) => {
console.log(i.title);
const title = i.title;
const date = i.date;
const sqlQuery = "INSERT INTO event_olive (date,title) VALUES (?,?)";
db.query(sqlQuery, [date, title], (err,result) => {});
});
});
'Node' 카테고리의 다른 글
중요한 변수값(서버 속성 및 포트)을 환경변수로 사용하기 (0) | 2022.04.17 |
---|---|
crypto-js 암호화,복호화하기 (0) | 2022.03.24 |
[Sequelize] 2 - DB연결하기 (0) | 2022.03.02 |
[Sequelize] 1 - Sequelize란..? 그리고 설치 (0) | 2022.03.02 |
express로 웹서버 만들기 (0) | 2021.12.30 |
Comments