강의

멘토링

커뮤니티

Inflearn Community Q&A

kimssun's profile image
kimssun

asked

Slack Clone Coding [Backend with NestJS + TypeORM]

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

Written on

·

767

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 },
}); 근데 이코드는 이상하게 정확하게 조건절이 잘 먹히네요 왜 이러는걸까요 ?
nodejsexpressNestJSTypeORM

Answer 5

0

kimssun님의 프로필 이미지
kimssun
Questioner

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

zerocho님의 프로필 이미지
zerocho
Instructor

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

kimssun님의 프로필 이미지
kimssun
Questioner

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

kimssun님의 프로필 이미지
kimssun
Questioner

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

kimssun님의 프로필 이미지
kimssun
Questioner

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

 

kimssun님의 프로필 이미지
kimssun
Questioner

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

zerocho님의 프로필 이미지
zerocho
Instructor

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

kimssun님의 프로필 이미지
kimssun
Questioner

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

zerocho님의 프로필 이미지
zerocho
Instructor

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

0

kimssun님의 프로필 이미지
kimssun
Questioner

kimssun님의 프로필 이미지
kimssun
Questioner

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

zerocho님의 프로필 이미지
zerocho
Instructor

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

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

kimssun님의 프로필 이미지
kimssun
Questioner

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

zerocho님의 프로필 이미지
zerocho
Instructor

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

zerocho님의 프로필 이미지
zerocho
Instructor

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

kimssun님의 프로필 이미지
kimssun
Questioner

kimssun님의 프로필 이미지
kimssun
Questioner

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

kimssun님의 프로필 이미지
kimssun
Questioner

kimssun님의 프로필 이미지
kimssun
Questioner

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

kimssun님의 프로필 이미지
kimssun
Questioner

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

zerocho님의 프로필 이미지
zerocho
Instructor

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

kimssun님의 프로필 이미지
kimssun
Questioner

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

0

kimssun님의 프로필 이미지
kimssun
Questioner

kimssun님의 프로필 이미지
kimssun
Questioner

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

kimssun님의 프로필 이미지
kimssun
Questioner

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

zerocho님의 프로필 이미지
zerocho
Instructor

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

0

kimssun님의 프로필 이미지
kimssun
Questioner

Emails entity 디비 구조이며  

0

zerocho님의 프로필 이미지
zerocho
Instructor

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

kimssun님의 프로필 이미지
kimssun
Questioner

네 맞습니다

zerocho님의 프로필 이미지
zerocho
Instructor

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

kimssun님의 프로필 이미지
kimssun
Questioner

그런데 직접 값을 넣게되면 

const num_auth = await this.emailsrepository.findOne({

where: { auth_num: "112928"
},

});
kimssun님의 프로필 이미지
kimssun
Questioner

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

zerocho님의 프로필 이미지
zerocho
Instructor

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

kimssun's profile image
kimssun

asked

Ask a question