Gorilla-Kim/Project

[MEMO APP] Back-end/ REST API-Register (3)

Kim_gorilla 2020. 3. 18. 14:57

 

๐Ÿ‘จ‍๐Ÿ’ป REST API (3)

 

๐Ÿ“Œ LocalRegister Controller(3)

 

์ง€๋‚œ ํฌ์ŠคํŒ…์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์•Œ๋งž์€ ํ˜•์‹์ธ์ง€ Validate(ํ™•์ธ)ํ•˜๊ณ  ๊ทธ ๋’ค์— ํŠน์ • ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ์…‹ํŒ…ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

์˜ค๋Š˜์€ ์šฐ๋ฆฌ๊ฐ€ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  DB(MongoDB)์— ์ €์žฅ์„ ํ•ด์ฃผ๋„๋ก ํ•ด๋ณผ๊ฒŒ์š”!

(๋“œ๋””์–ด.. ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด๋ณด๋Š”๊ตฐ์š”)

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ด€๋ จ๋œ ์ž‘์—…์„ ํ• ๋•Œ๋Š” ๊ทธ์—๋Œ€ํ•œ ์˜ค๋ฅ˜์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๋Š”๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ €ํฌ๋Š” try catch ๋ธ”๋ก ์•ˆ์—์„œ ์ž‘์—…์„ ํ•ด์ฃผ๋„๋ก ํ• ๊บผ์—์š”.

 

์šฐ๋ฆฌ๊ฐ€ try ๋ธ”๋ก์—์„œ ์ œ์ผ๋จผ์ € ํ•ด์ฃผ๊ณ  ์‹ถ์€๊ฒƒ์€ ์œ ์ €๊ฐ€ ๋ณด๋‚ธ displayName๊ณผ email์ด ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ์ •๋ณด์ธ์ง€ ํ™•์ธํ•˜๋Š”๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ DB์— ์ง์ ‘ ์ ‘๊ทผํ•ด์„œ ํ•˜๋Š” ์ž‘์—…๋“ค์€ auth.ctrl.js์—์„œ๋„ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๊ฐ€๋Šฅํ•œ model ํŒŒ์ผ ์ฆ‰ User.js์—์„œ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š”๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ์ด์œ ๋กœ User.js๋ฅผ ์—ด์–ด 3๊ฐ€์ง€์˜ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋‚ด๋ณด๋‚ด์ค„๊บผ์—์š”.

๋‚˜์ค‘์— ID/PW๋ฅผ ์ฐพ๊ธฐ์œ„ํ•œ ๋‘๊ฐœ์˜ ๋ฉ”์„œ๋“œ์™€ DisplayName ๊ณผ Email์„ ๋™์‹œ์— ๊ฒ€์ฆ์„ ํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ ํ•˜๋‚˜๋ฅผ ๋งŒ๋“ค๊ฒ ์Šต๋‹ˆ๋‹ค.

(Model์—์„œ๋Š” statics๋ผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์ง€์ •ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

๋งŒ๋“ค์—ˆ์œผ๋‹ˆ ์‚ฌ์šฉํ•ด๋ด์•ผ๊ฒ ์ฃ ? findExistancy ํ•จ์ˆ˜๋ฅผ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  auth.ctrl.js์˜ try ๋ธ”๋ก์—์„œ ์‚ฌ์šฉํ•ด ๋ณผ๊ฒŒ์š”.

์ด๋ ‡๊ฒŒ ํ•ด์ฃผ๋ฉด ์ค‘๋ณต๊ฒ€์‚ฌ๊ฐ€ ์ž˜ ์ž‘๋™ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์ค‘๋ณต๊ฒ€์‚ฌ๊นŒ์ง€ ํ–ˆ์œผ๋‹ˆ ์‹ค์งˆ์ ์œผ๋กœ DB์— ์ €์žฅ์„ ํ•ด์ฃผ์–ด์•ผ๊ฒ ์ฃ ?

์ด๋ฒˆ์—๋Š” DB์— ์ €์žฅ์„ ํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ User.js์— ์ž‘์„ฑํ•ด ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋งŒ๋“ค์—ˆ์œผ๋‹ˆ ์ด ํ•จ์ˆ˜๋„ auth.ctrl.js์—์„œ ์‚ฌ์šฉํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•ด์ฃผ๋ฉด DB์— ํšŒ์›๋“ฑ๋ก๊ณผ ๋™์‹œ์— ์ด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์‘๋‹ต์œผ๋กœ ๋ณด๋‚ด์ฃผ๊ฒŒ ๋˜์–ด์ง‘๋‹ˆ๋‹ค. ํ•œ๋ฒˆ ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ํฌ์ŠคํŠธ๋งจ์œผ๋กœ ํ™•์ธ์„ ํ•ด๋ณผ๊ฒŒ์š”.

 

์•„๋ž˜ ์‚ฌ์ง„ ๋ฐ์ดํ„ฐ๋กœ ์ „์†ก์„ํ•˜๋‹ˆ ์‚ฌ์ง„ ํ•˜๋‹จ์˜ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ฐ˜ํ™˜๋œ๊ฒƒ์„ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ์—๋Š” DB์—๋„ ์ž˜ ์ž‘์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ณผ๊ป€๋ฐ์š”, ์ด๋ฅผ ํ™•์ธํ•˜๊ธฐ์œ„ํ•ด MongoDB ์„ค์น˜์‹œ ๊ฐ™์ด ๋ฐ›์€ Compass๋ผ๋Š” ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Compass๋ฅผ ์—ด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜์˜ค๋Š”๋ฐ์š”, ์ €๋Š” ์—ฌ๋Ÿฌ ํ”Œ์ ์„ํ†ตํ•ด ์—ฌ๋ŸฌDB๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์ง€๋งŒ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜์‹œ๋Š” ๋ถ„์€ memo๋งŒ ์žˆ์„๊บผ์—์š”.

์ด memo๋ฅผ ํด๋ฆญํ•ด์ฃผ๋ฉด, ๋‹ค์Œ์ฒ˜๋Ÿผ users ํ…Œ์ด๋ธ”์ด ๋ณด์ผ๊ฒ๋‹ˆ๋‹ค.

usersํ…Œ์ด๋ธ”์„ ํด๋ฆญํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๋ฐฉ๊ธˆ ์ƒ์„ฑํ•œ User ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„์ฃผ ์ž˜ ์ƒ์„ฑ๋œ๊ฑธ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์กฐ๊ธˆ ์•„์‰ฌ์šด์ ์€ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์•”ํ˜ธํ™” ๋˜์–ด์„œ ์ €์žฅ์ด ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ์š”, ์ด๋Š” ๋‚˜์ค‘์— ์‹œ๊ฐ„์  ์—ฌ์œ ๊ฐ€ ๋ ๋•Œ ์ฒ˜๋ฆฌํ•ด ์ฃผ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ผ๋‹จ ์ด๋ฒˆํฌ์ŠคํŒ…์€ ์—ฌ๊ธฐ๊นŒ์ง€ ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” ํšŒ์›๊ฐ€์ž…์ด ์ด๋ฃจ์–ด์กŒ์œผ๋‹ˆ ์ž๋™์œผ๋กœ ์„ธ์…˜์„ ๋งŒ๋“ค์–ด ๋กœ๊ทธ์ธ์ด ์ด๋ฃจ์–ด์ง€๊ณ  ๊ทธ ๋กœ๊ทธ์ธ์ด ์œ ์ง€๋  ์ˆ˜ ์žˆ๋„๋ก ์ฒ˜๋ฆฌํ•ด ์ฃผ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿผ ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ๋ตˆ์š” ^^