์งํํ๊ณ ์๋ soundy ํ๋ก์ ํธ์์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๋จผ์ ๊ตฌํํ๊ธฐ ์ํด์ ์ฑ ๋ด์ฉ์ ์กฐ๊ธ ๋ฐ์ด ๋์ด์ ์ฌ์ฉ์ ๊ณ์ ์ธ์ฆ ๋ถ๋ถ๋ถํฐ ๊ณต๋ถํ๊ณ ์๋ค.
ํ๋์ ๋ฉ์์ง ๋ชจ๋ ์ค์
ํ๋์ ๋ฉ์์ง(Flash Message)
: ์ ํ๋ฆฌ์ผ์ด์ ์ฌ์ฉ์์๊ฒ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ฐ์๊ตฌ ๋ฐ์ดํฐ
์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ ์์ฑ๋ผ ์ธ์ ์ ์ผ๋ถ๋ก์ ์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ์ ์ ๋ฌ๋๋ค.
npm i connect-flash -S
npm i cookie-parser express-session -S
์ผ๋ก connect-flash ๋ฏธ๋ค์จ์ด์ cookie-parser์ express-session ํจํค์ง๋ ์ค์นํ๋ค.
- connect-flash: ํ๋์ ๋ฉ์์ง๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ฌ์ฉ
- express-session: ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํด๋ผ์ด์ธํธ ์ฌ์ด์ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด ์ฌ์ฉ
- cookie-parser: ๋ธ๋ผ์ฐ์ ์์ ์๋ฒ๋ก ์ ๋ฌ๋๋ ์ฟ ํค๋ฅผ ์ธ์ ์์ ํด์ํ๊ธฐ ์ํด ์ฌ์ฉ
์ค์น๋ฅผ ๋ง์น๋ฉด main.js์ ์ด๋ ๊ฒ ์ ์ธํ๋ค.
29ํ๋ถํฐ 31ํ๊น์ง๋ 3๊ฐ์ง ๋ชจ๋์ ์์ฒญํ๋ ๋ถ๋ถ์ด๋ค.
33ํ์ Express.js์ ๋ฏธ๋ค์จ์ด๋ก์ cookie-parser๋ฅผ ์ฌ์ฉํ๊ณ , ๋น๋ฐ์ํธ๋ฅผ ์ฌ์ฉํ๋๋ก ์ ์ธํ๋ค.
๊ทธ๋ค์์ผ๋ก 34ํ์ express-session ์ ์ธ์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ธ์ ์ ์ฌ์ฉํ๊ฒ ํจ์ผ๋ก์จ ์คํ ๋ฆฌ์ง ๋ฉ์๋๋ก cookie-parser๋ฅผ ์ฌ์ฉํ๊ณ , 1์๊ฐํ ์ธ์ ์ ๋ง๋ฃ์ํค๋๋ก ์ค์ ํ๋ค.
๋ํ saveUninitialized ์์ฑ์ false๋ก ์ค์ ํด ๋ฉ์์ง๊ฐ ์ธ์ ์ ์ถ๊ฐ๋์ง ์์๋ค๋ฉด ์ฟ ํค๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ณด๋ด์ง ์๋๋ก ์ง์ ํ๋ค. ๋ง์ง๋ง์ผ๋ก connect-flash๋ฅผ ๋ฏธ๋ค์จ์ด๋ก ์ฌ์ฉํ๋๋กํ๋ค.
์ด๋ฐ ์ค๋ฅ๊ฐ ๋ฌ์๋๋ฐ ๋ฐ๋ณด๊ฐ์ด ์ปจํธ๋กค๋ฌ์์๋ req.flash() ์ด๋ฐ ํจ์๋ฅผ ์ฌ์ฉํด๋๊ณ ๋ฉ์ธ์ ์ ๋ ๊ฒ ์ ์ธ์ ์ํด์ ์๊ฒผ๋ ๊ฑฐ์๋ค. ^_^
์ปจํธ๋กค๋ฌ ์ก์ ์ ํ๋์ ๋ฉ์์ง ์ถ๊ฐ
ํ๋์ ๋ฉ์์ง๋ ์ฌ์ฉ์์๊ฒ ์ฑ๊ณต ๋๋ ์คํจ๋ฅผ ์๋ ค์ฃผ๋ ๋ฐ ์ ์ผ ์ ์ฉํ๊ฒ ์ฐ์ผ ๊ฒ ๊ฐ๋ค.
ํ์๊ฐ์ ์ฑ๊ณต/์คํจ ์ฌ๋ถ ๋ถํฐ ํ์ํ๊ธฐ ์ํด ํ๋ ์ ๋ฉ์์ง๋ฅผ ์ฌ์ฉํ๋๋ฐ,
๋จผ์
์ฑ ์ ๋์์๋๋๋ก
์ด๋ ๊ฒ ์ฝ๋๋ฅผ ์งฐ๋๋ ์ ์๋๋ค...
๊ทธ๋์ ๊ทธ๋ฅ render ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์
flashMessages๋ผ๋ ์ด๋ฆ์ผ๋ก ํ๋ผ๋ฏธํฐ๋ฅผ ๋๊ฒจ์คฌ๋ค.
๊ทธ๋ผ ์ด๋ ๊ฒ ๊ฒฐ๊ณผ๊ฐ ์ฑ๊ณต/์คํจ ์ฌ๋ถ์ ๋ฐ๋ผ ์ ๋์จ๋ค.
์ฌ์ฉ์ ๊ณ์ ์ธ์ฆ
๊ฐ๋จํ๊ฒ DB์ ์ ์ฅ๋ ์ฌ์ฉ์์ id/password ์ ๋ณด์ ํผ์ ์ ๋ ฅ๋ id/password๋ฅผ ๋น๊ตํ์ฌ ๋ก๊ทธ์ธ ์ฑ๊ณต/์คํจ๋ฅผ ์ํค๋ ๋ฐฉ๋ฒ์ ๊ณต๋ถํด๋ดค๋ค.
๋ก๊ทธ์ธ์ด ์ฑ๊ณตํ๋์ง ์คํจํ๋์ง๋ ํ๋์ ๋ฉ์์ง๋ก ์๋ ค์ค๋ค.
๋จผ์ ๋ก๊ทธ์ธ ๋ก์ง์ ๋ด๋นํ๋ userController.js ์ด๋ค.
9ํ์ ๋ณด๋ฉด ์ผ๋จ findOne์ผ๋ก ํด๋น id๋ฅผ ๊ฐ์ง ์ ์ ๊ฐ ์๋์ง ๊ฒ์ํ๊ณ , ์๋ค๋ฉด ๊ทธ ์ ์ ์ password๋ฅผ ๊ฐ์ ธ์ ํผ์ ์ ๋ ฅ๋ password์ ๋น๊ตํ๋ค. ๊ฐ์ผ๋ฉด ๋ก๊ทธ์ธ ๋์๋ค๋ flashMessage๋ฅผ ๋ณด๋ด๊ณ , ์คํจํ๋ฉด ์คํจ ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค.
(์ฌ๊ธฐ์๋ equal ๋น๊ต ๊ธฐํธ๊ฐ === ์ธ๊ฐ์๋ค...)
์ด๋ ๊ฒ ํ๋ฉด ๊ฒฐ๊ณผ๋
์ด๋ฐ์์ผ๋ก ์ ๋์จ๋ค.
'โ๏ธ 21-2 IPP > Node.js study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Node.js - 20 Passport.js, ์ฌ์ฉ์ ์ธ์ฆ, ๋ก๊ทธ์ธ ๊ธฐ๋ฅ (0) | 2021.11.10 |
---|---|
Node.js - 19 ํจ์ค์๋ ํด์ฑ, ์ ํจ์ฑ ๋ฏธ๋ค์จ์ด (0) | 2021.11.09 |
Node.js - 17 ๋ฐ์ดํฐ ๋ชจ๋ธ ๊ฐ์ (+๊ฐ์ ์์ฑ, ์ก์ ) (0) | 2021.11.04 |
Node.js - 16 ์ปจํธ๋กค๋ฌ์ ๋ชจ๋ธ๊ณผ์ ์ฐ๊ฒฐ (0) | 2021.11.03 |
Node.js - 15 Mongoose๋ฅผ ์ฌ์ฉํ ๋ชจ๋ธ ์ ์ (0) | 2021.10.29 |
๋๊ธ