작성
·
291
답변 1
0
코드 자체는 문제 없습니다. 저기 로그에서 SoldId, good.Id 같은 게 ?로 뜨는 데 이 부분을 console.log찍어서 직접 값을 확인하고, DB에서도 워크벤치로 제대로 들어있는지 확인이 필요합니다. SoldId가 null로 계속 유지되어서 자꾸 저 로직이 실행되는게 아닌가싶기도 하네요.
저 unsold 부분 직접 짜신 건가요? 제가 개정판에서 추가하려고 작성한 코드랑 거의 일치하네요. 저는 Good.update부분만 await good.setSold(success.UserId, { transaction: t })로 수정하긴 했습니다.
이 코드는 강의에 나와있는 코드입니다.
왜 이런 현상이 나온 것인지 파악했습니다.
서버를 재시작하면 위에 보시다시피 트랜잭션이 반복됩니다.
app.js의 checkAuction(); 호출로 실행되는것 같습니다.
그 중에서도 위에 올린 코드가 실행됩니다.
코드대로라면 스케쥴 모듈로 unsold.createAt에서 하루가 지난 Date에 실행되어야 하지만
콘솔로 찍어보니
이렇게 찍힙니다.
참고로
시퀄라이즈에서 ?가 뜨는데 콘솔이나 워크벤쳐로 확인해보면 제대로 데이터가 저장됩니다.
왜 ?가 뜨는지는 잘 모르겠습니다
경매 끝난 것 찾는 쿼리가 정확이 어떤 것인가요?
위 코드는 checkAuction.js 코드이며
상품을 가져오는 코드입니다.
강의 내용에서 따로 고친것은 없습니다.