[TIL] 221129

BeanxxΒ·2022λ…„ 11μ›” 29일
1

TIL

λͺ©λ‘ 보기
106/120
post-thumbnail

πŸ”₯ 였늘 ν•œ 일

  • μ±„μš© 곡고 탐색 μŠ€μ„μ© πŸ‘€
  • λ©΄μ ‘ 질문 & λ‹΅λ³€ 3개 정리
    • TypeScript μž₯단점에 λŒ€ν•΄ μ„€λͺ…ν•΄μ£Όμ„Έμš”
    • νŒ€ν”„λ‘œμ νŠΈ μˆ˜ν–‰μ‹œ κ°€μž₯ μ–΄λ €μ› λ˜ 점은 λ¬΄μ—‡μ΄μ—ˆλ‚˜μš”
    • λŒ€ν•™ μ‘Έμ—… ν›„ μ•½ 1λ…„ κ°„μ˜ 곡백기에 무엇을 ν•˜μ…¨λ‚˜μš”
  • TS ν”Œμ 
    • Mypage - λ‚΄κ°€ μž‘μ„±ν•œ 질문 & λ‹΅λ³€λ§Œ λ Œλ”λ§ λ˜λ„λ‘ μˆ˜μ •
    • λ‚΄κ°€ μž‘μ„±ν•œ λ‹΅λ³€ 좜λ ₯ λ‚΄μš© λ³€κ²½
  • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] Lv.1 ν‚€νŒ¨λ“œ λˆ„λ₯΄κΈ°(kakao) 1문제 μ™„λ£Œ

🚨 Error Handling

TS ν”Œμ  쀑 Mypageμ—μ„œ λ‚΄κ°€ μž‘μ„±ν•œ 질문 & λ‹΅λ³€λ§Œ λ Œλ”λ§ν•˜λŠ” λΆ€λΆ„μ—μ„œ 전체 글이 λ Œλ”λ§λ˜λŠ” 뢀뢄을 μˆ˜μ •ν•˜λŠ” κ³Όμ •μ—μ„œ κ°„λ‹¨ν•œκ±΄λ° 방법을 λͺ°λΌμ„œ κ΅¬ν˜„ν•˜λŠ”λ° μ‹œκ°„μ„ 많이 써버렸닀,,

이게 κΈ°μ‘΄ server controller μ½”λ“œμ˜€λŠ”λ° λ‹Ήμ—°νžˆ find()둜 쑰건을 걸어주지 μ•Šμ•˜μœΌλ‹ˆ Post db에 μžˆλŠ” λͺ¨λ“  글듀이 λ Œλ”λ§λ˜λŠ”κ²Œ λ‹Ήμ—°ν•˜λ‹€,,

const myQuestionsData = await Post.find()
.populate("author")
.exec();
return res.status(200).json(myQuestionsData);

처음 λ‚΄κ°€ μ ‘κ·Όν•˜λ €κ³  ν–ˆλ˜ 방식은 Mypage url에 params둜 author > displayNameκ°€ λ“€μ–΄κ°€λŠ”λ° 이λ₯Ό find에 쑰건으둜 λ„£μ–΄μ£Όλ©΄ λ˜λŠ” κ°„λ‹¨ν•œ 문제라고 μƒκ°ν–ˆλ‹€. 근데 λ¬Έμ œλŠ” Post μŠ€ν‚€λ§ˆμ—μ„œ User μŠ€ν‚€λ§ˆλ₯Ό author둜 μ°Έμ‘°ν•΄μ„œ μ“°κ³  있기 λ•Œλ¬Έμ— Postμ—μ„œ author.displayName으둜 λ°”λ‘œ μ ‘κ·Όν•  μˆ˜κ°€ μ—†μ—ˆλ‹€,,

ꡬ글링해보고 계속 μˆ˜μ •ν•΄λ΄€μ—ˆλŠ”λ° μ²˜μŒμ—” μ•„λž˜μ™€ 같이 쑰건을 λ„£μ–΄λ΄€μ§€λ§Œ μ˜¬λ°”λ₯Έ 문법이 μ•„λ‹Œμ§€ axios 400 errorκ°€ 계속 났닀.
그리고 μ΄μƒν•˜κ²Œλ„ μ΄λ ‡κ²Œ 쑰건 건 데이터λ₯Ό 좜λ ₯해보면 author에 _idκ°€ λ“€μ–΄κ°€μžˆμ—ˆλ‹€,, μ•”νŠΌ λ­”κ°€ λ‹¨λ‹¨νžˆ 잘λͺ»λœ λ°©λ²•μž„μ„ κΉ¨λ‹«κ³  get을 postλ‘œλ„ 바꿔보고, ν΄λΌμ΄μ–ΈνŠΈ μ½”λ“œλ₯Ό 바꿔보기도 ν•˜λ‹€κ°€ μ–Όλ λš±λ•… λ‚΄κ°€ μ›ν•˜λŠ”λŒ€λ‘œ λ˜μ–΄λ²„λ¦Ό..!

find({"author": req.body.displayName})

일단 결둠은 λ¨Όμ € User μŠ€ν‚€λ§ˆμ— μ ‘κ·Όν–ˆμ–΄μ•Ό ν–ˆλ‹€,, Mypage paramsκ°€ displayName 값인데 Post μŠ€ν‚€λ§ˆμ—μ„œ authorλ₯Ό 찾으렀면 mongoDBμ—μ„œ μžλ™μœΌλ‘œ 생성해쀀 _id둜만 찾을 수 있기 λ•Œλ¬Έμ— User μŠ€ν‚€λ§ˆμ—μ„œ req.params.idκ³Ό displayName이 같은 μœ μ €μ •λ³΄λ₯Ό 일단 κ°€μ Έμ™”λ‹€.

req.params.idλ₯Ό μ‚¬μš©ν•˜λ©΄ params에 λ“€μ–΄κ°„ 값을 가져와 μ‚¬μš©ν•  수 μžˆλ‹€!

const userInfo = await User.findOne({
  displayName: req.params.id,
}).exec();

Mypage에 μ ‘μ†ν–ˆμ„ λ•Œ μœ„μ˜ userInfo._id 값을 좜λ ₯해보면 _id 값이 잘 좜λ ₯λ˜λŠ” 것을 ν™•μΈν•œ 후에 Post μŠ€ν‚€λ§ˆμ—μ„œ find() 쑰건으둜 author에 userInfo._id값을 λ„£μœΌλ©΄ 둜그인 ν•œ μœ μ €μ˜ _id와 μΌμΉ˜ν•˜λŠ” κΈ€λ§Œ λ Œλ”λ§μ΄ λœλ‹€! 😭

const myQuestionsData = await Post.find({ author: userInfo._id })
.populate("author")
.exec();
return res.status(200).json(myQuestionsData);

✍️ Diary

점점 개발자 μ‹œμž₯이 쒁아지고 μžˆλ‹€λŠ”λ° 이제 슬슬 이λ ₯μ„œλ₯Ό 넣어봐야겠닀,, 벌써 두렡 πŸ˜₯

profile
FE developer

0개의 λŒ“κΈ€