안녕하세요
MongoDB - 에러: Cannot set headers after they are sent to the client 본문
스터디/코딩애플
MongoDB - 에러: Cannot set headers after they are sent to the client
sakuraop 2023. 1. 6. 22:09Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are
sent to the client
요약: 클라이언트 요청 한 번에 응답을 두 번 보내려 합니다.
해결법: return 해서 응답을 한 번만 하도록 합니다.
참고: URL
코드입니다.
app.post("/register", (요청, 응답) => {
// 아이디 유효성 검사
// 아이디 유효성 검사
const checkId = /^[a-zA-Z0-9]{4,20}$/;
if (!checkId.test(요청.body.id)) {
console.log("아디 4~20 자리의 영문자또는 숫자");
응답.redirect("/login");
}
// 비밀번호 유효성 검사
// 비밀번호 유효성 검사
const checkPassword = /^[a-zA-Z0-9]{4,20}$/;
if (!checkPassword.test(요청.body.password)) {
console.log("비번 4~20 자리의 영문자또는 숫자");
응답.redirect("/login");
}
// 아이디 중복 검사
// 아이디 중복 검사
db.collection("login").findOne({ id: 요청.body.id }, (에러, 결과) => {
if (결과) {
console.log("아디 중복임");
응답.redirect("/login");
} else {
db.collection("login").insertOne({ id: 요청.body.id, pw: 요청.body.password }, (에러, 결과) => {
응답.redirect("/")};
});
});
});
가입 해봅시다.
아디 4~20 자리의 영문자또는 숫자
비번 4~20 자리의 영문자또는 숫자
=> 두 개의 출력이 동시에, 위에서 말한 에러도 발생합니다.
return 으로 응답을 한 번만 하도록 해봅시다.
app.post("/register", (요청, 응답) => {
// 아이디 유효성 검사
const checkId = /^[a-zA-Z0-9]{4,20}$/;
if (!checkId.test(요청.body.id)) {
console.log("아디 4~20 자리의 영문자또는 숫자");
return 응답.redirect("/login");
}
// 비밀번호 유효성 검사
const checkPassword = /^[a-zA-Z0-9]{4,20}$/;
if (!checkPassword.test(요청.body.password)) {
console.log("비번 4~20 자리의 영문자또는 숫자");
return 응답.redirect("/login");
}
// 아이디 중복체크
db.collection("login").findOne({ id: 요청.body.id }, (에러, 결과) => {
if (결과) {
console.log("아디 중복임");
return 응답.redirect("/login");
}
db.collection("login").insertOne({ id: 요청.body.id, pw: 요청.body.password }, (에러, 결과) => {
return 응답.redirect("/");
});
});
});
return 한 결과
1. ID, Password 둘다 유효성 탈락
=> 아디 4~20 자리의 영문자또는 숫자
2. Password 만 유효성 탈락
=> 비번 4~20 자리의 영문자또는 숫자
3. ID 중복
=> 아디 중복임
'스터디 > 코딩애플' 카테고리의 다른 글
MongoDB - multer 이미지 업로드하기 (0) | 2023.01.07 |
---|---|
MongoDB - Express Router 라우터 만들기 (0) | 2023.01.07 |
MongoDB - 중복ID체크, ID/Password 유효성 검사 (0) | 2023.01.06 |
MongoDB - 회원기능 게시물 작성자만 삭제하기 (0) | 2023.01.06 |
MongoDB - Search Index: 이진탐색으로 게시물 찾기 (0) | 2023.01.06 |