๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ๋„/Code-States

[D+128] Final Project : 8์ผ์ฐจ ์Šคํ‚ค๋งˆ์ž‘์„ฑ && body-parser ์—๋Ÿฌ

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2021. 2. 25.

 

 

D+128

-  Final Project : 8์ผ์ฐจ -

( ์Šคํ‚ค๋งˆ์ž‘์„ฑ์™„๋ฃŒ && ์ฒซ ์—๋Ÿฌ๋ฐœ์ƒ )

 


 

 

์˜ค๋Š˜์€ ์งˆ๋ฌธ๊ฒŒ์‹œํŒ์— ์˜จ ๋‹ต๋ณ€์„ ํ† ๋Œ€๋กœ ์Šคํ‚ค๋งˆ ์ž‘์„ฑ์„ ์™„๋ฃŒํ•˜์˜€๋‹ค.

 

 

์—”์ง€๋‹ˆ์–ด ๋ถ„์˜ ๋‹ต์€ ์ผ๋‹จ ์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•œ ์Šคํ‚ค๋งˆ๋Š” ํฐ ๋ฌธ์ œ๊ฐ€ ์—†์–ด๋ณด์ด์ง€๋งŒ

users๊ฐ€ ๋‹ด๊ณ ์žˆ๋Š” ์ •๋ณด๊ฐ€ schedules๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” usersํ•„๋“œ์˜ ์ •๋ณด๊ฐ€ users์ปฌ๋ ‰์…˜์˜ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

๋งŒ์•ฝ users์ปฌ๋ ‰์…˜์˜ ์ •๋ณด๊ฐ€ ๋ฐ”๋€Œ๋ฉด schedules ์ปฌ๋ ‰์…˜์— ์žˆ๋Š” users์˜ ํ•„๋“œ์•ˆ์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•„

์ถ”ํ›„์— ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด์˜€๋‹ค.

 

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์ด ๋ฌธ์ œ์ ์— ๋Œ€ํ•ด์„œ ์–ด๋–ป๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋ƒ๋Š” ์žฌ ์งˆ๋ฌธ์„ ํ•˜์˜€๊ณ ,

mongoose์—์„œ ์ปฌ๋ ‰์…˜๊ฐ„์— ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•ด ๋ฐ์ดํ„ฐ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹ต์„ ์•Œ๋ ค์ฃผ์…จ๊ณ 

์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์šฐ๋ฆฌ๋Š” ๋ชฝ๊ตฌ๋ฅผ ์„ค์น˜ํ•ด ์Šคํ‚ค๋งˆ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค.

 

 

๋จผ์ € mongoose๋ฅผ mongodb์— ์—ฐ๊ฒฐํ•ด ์ฃผ๋Š”๋ฐ ์ด๋•Œ ์˜ต์…˜์œผ๋กœ 2๊ฐ€์ง€๋ฅผ ๋„ฃ์–ด์ฃผ๋Š”๋ฐ,

useNewUrlParser๋ฅผ ์ ์–ด์ฃผ์ง€ ์•Š์œผ๋ฉด ์ƒˆ๋กœ์šด ํŒŒ์„œ๋ฅผ ์‚ฌ์šฉํ•ด๋ผ๋ผ๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— true๋กœ ์„ค์ •์„ ํ•ด์ค€๋‹ค.

 

useUnifiedTopology๋Š” ์ƒˆ ์„œ๋ฒ„ ๊ฒ€์ƒ‰ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ์—”์ง„์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ์˜ต์…˜์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

 

users ์ปฌ๋ ‰์…˜ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์ผ๋‹จ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ์— ๊ด€๋ จ๋œ multer๋Š” ์ถ”ํ›„์— ํ•˜๊ธฐ๋กœ ํ•˜๊ณ 

๋‹‰๋„ค์ž„, ์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•„๋“œ๋ฅผ ์ œ์ž‘ํ•ด ์ž˜ ๋™์ž‘๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•˜์˜€๋‹ค.

 

์ด๋•Œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ์„ฑ๋ ๋•Œ ์ž๋™์œผ๋กœ Object id๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๊ณ ,

์ด๋ฅผ ํ†ตํ•ด API์—์„œ ๊ฒฝ๋กœํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ nickname์ด ์•„๋‹Œ Object id๋ฅผ ๋„ฃ์–ด์ฃผ๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

 

 

Schedules๋Š” hashtag๋Š” ๋ฐฐ์—ดํ˜•์‹์œผ๋กœ ์•ˆ์— ๊ฐ์ฒด๋ฅผ ๋ฐ›๋Š” ํ˜•์‹์œผ๋กœ ๋ณ€๊ฒฝํ•ด ์ฃผ์—ˆ๋Š”๋ฐ

์ด๋•Œ ํ•ด๋‹น hashtag์—์„œ _id๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋Š”๋ฐ ๋ถˆํ•„์š”ํ•ด์„œ _id: false๋ฅผ ํ†ตํ•ด _id ์ž๋™์ƒ์„ฑ์„ ์—†์• ์ฃผ์—ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  userInfo์—์„œ ref๋ฅผ ํ†ตํ•ด์„œ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜๋„๋ก ์„ค์ •ํ•ด ์ฃผ์—ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ํ•ด์„œ ์Šคํ‚ค๋งˆ๊ฐ€ ์™„์„ฑ๋˜์—ˆ๊ณ  ๊ฐ์ž ํŽ˜์ด์ง€๋ฅผ ๋งก์•„์„œ API๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ๋กœ ํ•˜์˜€๋Š”๋ฐ

๋‚˜์—๊ฒŒ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ๋ฒ„๋ ธ๋‹ค.

 

 

req.body๋ฅผ ๋Œ๋ฆฌ๋ฉด ์ž๊พธ ์—๋Ÿฌ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒƒ์ด๋‹ค.

 

๊ทธ๋ž˜์„œ ์ฝ˜์†”๋กœ๊ทธ๋กœ ๊ฐ’์„ ํ™•์ธํ–ˆ๋Š”๋ฐ undefined์ด๋ผ๊ณ  ๋‚˜์˜ค๋Š” ๊ฒƒ์ด๋‹ค....

 

๊ทธ๋ž˜์„œ ์ด๊ฑฐ ํ•ด๊ฒฐํ•œ๋‹ค๊ณ  ๋‹น์ผ๋‚  API ๊ตฌํ˜„์€ ๊ฑฐ์˜ 1๋„ ๋ชปํ–ˆ๋‹ค... ใ… ใ…œ

 

 

๊ทธ๋ž˜์„œ ๋ฉ๋•Œ๋ฆฌ๋‹ค๊ฐ€ express ์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€์„œ ํ™•์ธ์„ ํ•˜๋Š”๋ฐ ์•„๋ฟ”์‹ธ....

body-parser๊ฐ€ ์—†์œผ๋ฉด undefined๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค๋Š” ๊ฒƒ์„ ์žŠ๊ณ  ์žˆ์—ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ๊ธ‰ํ•˜๊ฒŒ body-parser๋ฅผ ์„ค์น˜ํ•˜๋‹ˆ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค!!!

 

๊ทผ๋ฐ ๋จผ๊ฐ€ ์•„์ด๋Ÿฌ๋‹ˆ ํ–ˆ๋˜๊ฒŒ express์—์„œ body-parser๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด์„œ ๋”ฐ๋กœ ์„ค์น˜๊ฐ€ ํ•„์š”์—†๋‹ค๊ณ  ๋“ค์—ˆ๋Š”๋ฐ

์™œ ์—†๋Š”์ง€... ๋‹ค์‹œ ๋‚ด์žฅ์ด ์•ˆ๋˜์–ด ๋ฒ„๋ฆฐ ๊ฒƒ์ธ๊ฐ€?!

 

์ผ๋‹จ์€ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์–ด์„œ ์™„์ „ ๋‹คํ–‰์ด๋‹ค ใ… ใ…œ

 

์˜ค๋Š˜ ์ƒˆ๋ฒฝ์— ๋ถˆํƒ€๋Š” ์ฝ”๋”ฉ์œผ๋กœ API๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ๊ฒ ๋‹ค.

 

 


 

 

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€