
render์ redirect์ ์ฐจ์ด๊ฐ ๊ถ๊ธํด์ ๊ตฌ๊ธ๋งํด๋ดค์ง๋ง ์ ๋ถ django์ ๋ํ render redirect๋ง ๋ณด์๋ค...
์ด์ฉ๋ฉด ๋๋ฌด ์ฌ์ด๊ฑฐ๋ผ ๋๋นผ๊ณ ๋ค ์๊ณ ์๋๊ฑฐ์ผ์๋...?
์ํผ ๊ทธ๋์ express ๊ณต์๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด ํผ์ ๋ถ์ํด๋ณด๊ธฐ๋ก ํ๋ค.
์ฐจ์ด๋ ๋ค์๊ณผ ๊ฐ๋ค.
1. ๋งค๊ฐ๋ณ์์ ์ฐจ์ด
1.1 res.redirect([status,] path)
redirect๋ ๊ฒฝ๋ก์ ํจ๊ป ์ํ๋ฅผ ๊ฐ์ด ๋ณด๋ธ๋ค.
์ฌ๊ธฐ์ ์ํ๋ http ์ํ์ฝ๋์ ํด๋นํ๋ ์์ ์ ์๋ค.
์ํ๋ฅผ ์ง์ ํ์ง ์๋๋ค๋ฉด ์ํ๋ ๊ธฐ๋ณธ์ ์ผ๋ก found๋ผ๋ ๋ป์๊ฐ์ง 302๋ก ์ค์ ๋๋ค.
์ํ์ฝ๋๋ณ๋ก์ ์๋ฏธ๋ ๋ค์ ์ฌ์ดํธ์ ์ ๋ถ ์ ๋ฆฌ ๋์ด์๋ค.
์ฌ์ฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
res.redirect(302, "myHome");
1.2 res.render(view [, locals][, callback])
render๋ ํ ํ๋ฆฟ๊ณผ ํจ๊ป ๊ฐ์ฑ๋ฅผ ์ ๋ฌํ๊ณ , ์ฝ๋ฐฑํจ์๋ฅผ ์ ๋ฌํ๋ค.
res.render('user', { name: 'jaeyun' }, function (err, html) {
// ...
})
์ฝ๋ฐฑํจ์๋ err๋ฉ์์ง์ ํ ํ๋ฆฟ์ html์ ๋ฐํ ํด ์ค๋ค.
2. ๋ณด๋ผ ์ ์๋ ์ฃผ์ ์ฐจ์ด
๋งค๊ฐ๋ณ์์์ ์ ์ ์๋ฏ์ด redirect๋ path(๊ฒฝ๋ก)๋ฅผ ์ ๋ฌํ๋ค.
๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๊ฐ ๊ตฌ๊ธ ์น์ฌ์ดํธ๋ก redirect๋๋๊ฑธ ๋ณผ ์ ์๋ค
return res.redirect("http://google.com");
๊ทธ๋์ ํ์ ๊ฐ๋ฐํ ๋ router๋ฅผ ์ด์ฉํ๋ ๊ฒ์ด๋ค.
localhost:4000/login ์ด๋ผ๋ ํ์ด์ง๊ฐ ์๋ค๋ฉด
return res.redirect("/login")
router -> controller -> views๋ก ํตํ๋ค.
๋ฐ๋ฉฐ์ render๋ view ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ๊ณ ์๋ค. ๋๋ฌธ์ ์ ๋ฌ๊ฐ์ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํด์ฃผ๋ฉด ์ค๋ฅ๊ฐ๋๋ค.
์ฆ, ํ ํ๋ฆฟ์ ๋ณด๋ด๊ธฐ ์ํ response์ด๋ค
3. ๊ฒฐ๋ก
์๊ฐ๋ณด๋ค ๊ฐ๋จํ๋ค!
๋จ์ํ ์ด๋ค ๋ฐฉ์์ผ๋ก ํ์ด์ง๋ฅผ ์๋ตํ ๊ฒ์ธ์ง ์ฐจ์ด๋ค
๊ฒฝ๋ก, ๋ผ์ฐํฐ + ์ํ๋ฅผ ๋ณด๋ด๊ณ ์ถ์ผ๋ฉด -> redirect
ํ
ํ๋ฆฟ ์ ๋ฌ + ํ
ํ๋ฆฟ์ ์ ๋ฌํ ๊ฐ์ฒด + ์ฝ๋ฐฑํจ์๋ฅผ ํตํ ์ค๋ฅ, htmlํ์ธ์ ์ํ๋ค๋ฉด -> render
์๋ง ๋จ์์ด ์ด ์ด์ ๋๋ฌธ์ ๋์ ๊ตฌ๋ถ ์ง์ง๋ ์์์ ๊ฑฐ๋ผ ์๊ฐํ๋ค.
์ข ๋ ์ฌ์คํ ๋ด์ฉ์ ๊ณต๋ถํ๋ฉด์ ๋๊ปด ๋ณด๊ณ ๋ ์ ๋ฆฌ ํด์ผ๊ฒ ๋ค.

์ฐธ๊ณ ์๋ฃ: https://expressjs.com
'๐งฑ Framework > Node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฟ ํค์ ์ธ์ ์ด๋? ๋ชจ๋ ์ฟ ํค ํ์ฉ์ ์ค์ฒด (0) | 2023.02.04 |
---|---|
bcrypt๋ก ๋น๋ฐ๋ฒํธ ํด์ฑํ๊ธฐ (0) | 2023.02.03 |
mongoose? (0) | 2023.02.02 |
์๋์ฐ์์ ๊ฐ๋จํ๊ฒ mongoDB ์ค์นํ๊ธฐ (0) | 2023.01.27 |
express์์ html์ ๊ทผ, ์ ๋ชฉ๋ณ๊ฒฝ (0) | 2023.01.23 |