• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

질문드립니다 findOne  결과값이 왜 null이나오는지 잘모르겠네요

22.08.03 12:54 작성 조회수 503

0

const num_auth = await this.emailsrepository.findOne({
where: { auth_num: authnum },
});
 
 
이코드는 문제의 코드입니다 authnum = String 타입입니다. 콘솔로 num_auth를 찍으면 null 이 찍힙니다. 해당 데이터가 db에 실제 존재하고있습니다..
console.log로 authnum 이 잘들어오는것도 찍혔습니다.
 
 
 
 
 
 
const findemail = await this.userRepository.findOne({
where: { email: email },
}); 근데 이코드는 이상하게 정확하게 조건절이 잘 먹히네요 왜 이러는걸까요 ?

답변 5

·

답변을 작성해보세요.

0

제로초님 궁금한게있습니다. 혹시 express에서 데이터베이스 sync가 false로 꺼져있는데도 불구하고 서버실행시 컬럼이 자동추가되는건 왜그런걸까요 ..? 무조건꺼져있는걸 두눈으로 똑똑히 확인했습니다!!

서버 시작 시 create table if not exist sql들이 주르륵 적혀나오는지 확인해보세요.

alter 명령어를 엄청때립니다..

Executing (default): ALTER TABLE users CHANGE create_at create_at DATETIME NOT NULL COMMENT '회원가입 시간'; 이런식으로 모델들에대하여 다 실행을해버리네요

타입스크립트 올인원강의도 잘보겠습니다!

 

해서 나는문제는 sync 가 false상태인데도 불구하고 모델컬럼이 지맘대로 바껴서 테스트해보려고하면 500에러를 던지네요.. 컬럼이 db랑 맞지않아서 문제가 계속 발생하네요..

sync말고 alter 옵션 true인 것 아닌가요?

sync alter옵션자체는 세팅을 안해놓았는데 혹시 얘 default가 false로 알고있어서요 ..

소스코드가 적용이 안 된 것일 수도 있습니다. nestjs는 dist 폴더 안에 들어있는 소스가 실제 소스입니다.

0

이렇게 찍힙니다! 쌉고수 제로초형님 nestjs 다음강의도 하나 더올려주시면 바로 구매 때리겠슴다 ㅠㅠ nestjs 야놀자 이런거같은 거로 지도검색api 관련된것들도 강의 하실계획은 없으실까요 ?

authnum이 { auth_num: '192218' } 이잖아요. 이상한 걸 못 느끼시겠나요? ㅎㅎ

nestjs 강좌는 더이상 계획이 없습니다.

아 ... 방금 보니까 저렇게 값이 들어와버려서 그런거네요.. where절에선 where=authnum:192218이 들어가는거였네요.. 그럼 저걸 Object.values로 값을따로 빼줘야하는건가요,,,그렇다면.. 다른것들은 그렇게 처리를 안해주었는데 왜 정상적으로 들어온값이 그대로 나오는걸까요..?

저게 서비스면 컨트롤러에서 데이터를 객체로 넘겨주고 있겠죠

위에 주석 보니까 예전에는 const { auth_num } = data; 이런 식으로 제대로 꺼내서 쓰셨는데 그걸 수정하셨네요.

이렇게 처리하면 에러는 나지만 쿼리는 정상동작하네요 ...?

아..... 중요한걸 간과하고있었네요..

정말 감사합니다 제로초님.. 진짜 강의도 너무 잘들었는데 이렇게 피드까지 바로바로해주시고 진짜 감사합니다.. 혹시 하나만 더 여쭤보고싶은데요 .. 제로초님이 신입시절 공부를하신다고하신다면 어떠한 방식으로 공부하는게 효과적일까요? ex)백엔드 로드맵 기준표대로 공부를 진행해라.. 또는 토이프로젝트를 많이해라 이런것들처럼 혹시 제로초님만의 방법이 있으면 알고싶습니다.

가장 도움이 많이 되었던 건 진짜 실무를 하는 것이었습니다. 코딩보다 더 중요한 게 따로 있다는 걸 느낄 수 있습니다.

감사합니다 진짜 맞는말씀이신것 같네요 혹시 나중에 nodeJS관련된 백엔드 강의가 있다면 꼭 수강하겠습니다 

0

이렇게 콘솔찍으면 null 값이 찍히네요 

디비는 mariadb를 사용하고있습니다.

console.log(authnum)과 console.log(num_auth)를 둘 다 보여주세요. 저기 위에 192218으로요.

0

Emails entity 디비 구조이며  

0

이메일 엔티티에도 auth_num이 맞나요?

네 맞습니다

db에 데이터가 들어있는 것과 console.log 하신 것까지 보여주셔야 해결 가능할 것 같습니다.

그런데 직접 값을 넣게되면 

const num_auth = await this.emailsrepository.findOne({

where: { auth_num: "112928"
},

});

이렇게 주게 되면 쿼리가 정상동작합니다.. 해서 받아오는 값을 where절에 넣어두고싶은데 왜 동작을 하지않는지 의문이네요.. 제로초님 슬랙코딩에 이메일인증을 추가하고싶은거거든요,,.

authnum이 잘못되었다고밖에 추측되지 않습니다.