데이터베이스에 데이터가 이미 존재하는 경우 데이터베이스 삽입 중에 약속 체인을 끊는 방법은 무엇입니까?
<p>멤버가 이미 데이터베이스에 존재하는지 확인한 후 몽구스를 사용하여 데이터베이스에 새 멤버 항목을 생성하고 있습니다. 구성원이 이미 존재하는 경우 응답을 반환해야 하고, 그렇지 않으면 새 구성원을 계속 삽입해야 합니다.
코드는 다음과 같습니다. </p>
<pre class="brush:php;toolbar:false;">createNewMember = (req, res, next) =>
Member.findOne({이메일: 이메일}).exec()
.then((회원) => {
if(members == null ||members.length==0) {
//새 멤버 객체 생성
return newMember.save() // 1 -->
} 또 다른 {
res.status(409).json({message: "Member 이미 존재합니다"}) // 2 -->
}
})
.then((결과) => {
if(res.statusCode === 409) return res; // 3 -->
return res.status(201).json({message: "Member has beencreated"}) // 4 --> newMember.save() 블록
})
.catch(err => {
// 오류를 처리하고 오류 응답을 반환합니다.
})</pre>
<p>제가 원하는 것은 프로세스가 포인트 2에 도달하면 약속 체인이 끊어지지만 두 번째 블록은 여전히 호출된다는 것입니다. 포인트 3은 두 번째 블록이 실행되는 것을 방지하기 위해 추가한 검사이지만 이것이 최선의 처리 방법이라고 생각하지 않습니다.
이것이 일반적인 시나리오라고 생각합니다. 더 좋은 방법이 있습니까? </p>