ํฐ์คํ ๋ฆฌ ๋ทฐ
์ฌ๊ธฐ์๋ URL์ ํตํด์ ์ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ด ๋๋ค.
๊ทธ ์ค์์ express ์์ ์ ๊ณตํ๋ query ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋ค.
์ผ๋จ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ผ์ฐํฐ๋ฅผ ํตํด ์ ๊ทผํ๋ ๊ตฌ๋ฌธ์
1 2 3 | app.get('/topic',function(req,res) { res.send('hello'); }); | cs |
1 2 3 | app.get('/topic',function(req,res) { res.send(req.query.id); }); | cs |
์ฟผ๋ฆฌ ์คํธ๋ง์ ์ฌ์ฉ์๊ฐ ์์ฒญํ๋ ์ ๋ณด์ด๊ธฐ ๋๋ฌธ์ req๋ฅผ ์ฐ๊ณ request ๊ฐ์ฒด์ ์๋ query๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ค.
http://expressjs.com/en/4x/api.html#req.query ์ฌ๊ธฐ์ query ๊ฐ์ฒด์ ๊ดํ ์์ธํ ์ ๋ณด๊ฐ ์๋ค.
์ด๋ ๊ฒ ์์ฑํ์ ๋ ์ฟผ๋ฆฌ์คํธ๋ง ํ์์ผ๋ก url์ ์ฌ์ฉํ ์ ์๋ค. ์๋ฅผ๋ค๋ฉด localhost:3000/topic?id=9999 ์ผ๋ก ์ ์ ์์
์ด์ ๊ฐ์ ๊ฒฐ๊ณผ์ฐฝ์ ๋ณผ ์ ์๋ค. id๋ผ๋ ๊ฐ์ 9999 ๋ผ๋ ๊ฐ์ ์์ฒญํ์๊ณ ๊ทธ๊ฒ์ ํ๋ฉด์ ๋ํ๋ธ ๊ฒ์ด๋ค. ๋ง์ฝ์ ์ฌ๋ฌ๊ฐ์ ์ฟผ๋ฆฌ์คํธ๋ง์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ค๋ฉด
1 2 3 | app.get('/topic',function(req,res) { res.send(req.query.id+","+req.query.name); }); | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | app.get('/topic',function(req,res) { var topics = [ 'Javascript is...', 'Nodejs is...', 'Express is...' ]; var output = ` <a href ='/topic?id=0'> Javascript!! </a><br> <a href ='/topic?id=1'> Nodejs!! </a><br> <a href ='/topic?id=2'> Express!! </a> ${topics[req.query.id]} ` res.send(output); }); | cs |
์์ ๊ฐ์ ํํ๋ ๋งํฌ ํด๋ฆญ ์ ์ฟผ๋ฆฌ ์คํธ๋ง์ ์์ฒญ์ด ๋ค์ด์ค๊ณ ์๋ตํ ๊ฐ๋ค์ ๋ฏธ๋ฆฌ ๋ฐฐ์ด์ ๋ฃ์ด๋๊ณ , ๊ทธ ๊ฐ์ output์ด๋ผ๋ ๋ณ์์ ๋ฃ์ด์ฃผ๋ ํํ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์ง์ url์ ์ฟผ๋ฆฌ์คํธ๋ง์ ์
๋ ฅํด์ฃผ๋ ํํ๊ฐ ์๋๋ผ ๋งํฌ๋ก ์ด๋ ์์ ๊ฐ์ ๋ผ์ฐํฐ์์ ์ฟผ๋ฆฌ์คํธ๋ง ๊ฐ์ผ๋ก ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฌผ์ ์ถ๋ ฅํด์ฃผ๊ฒ ๋๋ค.
-----------------------------------์ถ๊ฐ-----------------------------------
semantic URL ๋ฐฉ์
๊ธฐ๋ณธ์ ์ธ ์๋ฆฌ๋ ์ฟผ๋ฆฌ ์คํธ๋ง์์ ๋ฒ์ด๋์ง ์์ง๋ง ํ๋ ์น ์ดํ๋ฆฌ์ผ์ด์ ์์ ๋ง์ด ์ฐ์ด๋ URL ๋ฐฉ์์ด๋ผ๊ณ ํ๋ค. ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ๋ง ๋ด๋ url์ ์ด ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ์ ๊ณตํด์ฃผ๊ณ ์๋ค. ex) http://bubobubo003.tistory.com/20 ์ด์๊ฐ์ด ๋ค์ 20์ด๋ผ๋ path๋ฅผ ์ถ๊ฐํด์ ์ฟผ๋ฆฌ์คํธ๋ง์ ๊ธฐ๋ฅ์ ํ ์ ์๊ฒ๋ ํ๋ ๊ฒ์ด๋ค. (๋ฌผ์ํ๊ฐ ๋ฑ์ฅํ์ง ์๊ณ ์ซ์ํ์์ผ๋ก)
๊ธฐ์กด์ ์ฝ๋์์ ์ฝ๊ฐ๋ง ๋ณ๊ฒฝ์ ํ๋ฉด ๋๋ค.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | app.get('/topic/:id',function(req,res) { var topics = [ 'Javascript is...', 'Nodejs is...', 'Express is...' ]; var output = ` <a href ='/topic/0'> Javascript!! </a><br> <a href ='/topic/1'> Nodejs!! </a><br> <a href ='/topic/2'> Express!! </a> ${topics[req.params.id]} ` res.send(output); }); | cs |
๋ฌ๋ผ์ง๊ฑด ๋ผ์ฐํฐ ๋ถ๋ถ์ /:id ๋ผ๊ณ ์ถ๊ฐ๋ ๋ถ๋ถ๊ณผ query๋์ params ๋ก ๋ฐ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ๋ํ a ํ๊ทธ ๋ถ๋ถ๋ /0 /1 /2 ์ ๊ฐ์
๋ฐฉ์์ผ๋ก ๋ฐ๊ฟ์ค์ผ ํ๋ค. (๋ฌผ๋ก ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ํ๋์ฝ๋ฉ์ ํ ๊ฒ์ด๋ค.)
๊ธฐ์กด์ localhost:3000/topic?id=0 ์ผ๋ก ์ ๊ทผํ๋ url์ด ์ด๋ป๊ฒ ๋ฐ๋๋์ง ํ๋ฒ ํ์ธํด๋ณด์.
URL์ ๋ณด๋ฉด ์ฟผ๋ฆฌ์คํธ๋ง์ด ์๋๋ผ ๋ผ์ฐํฐ์ ํํ๋ก /0 /1 ์ ๊ฐ์ด ๋ค์ด๊ฐ๋ฉด์ ์ฟผ๋ฆฌ ์คํธ๋ง๊ณผ ๊ฐ์ ์ญํ ์ ํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
๋ํ ์ฌ๊ธฐ์ ์์ฑ๋ ์ฟผ๋ฆฌ์คํธ๋ง์ ๋ค๋ฅธํ์ด์ง์์ ์ฌ์ฉํ๊ณ ์ถ์ ๋ ์ด์๊ฐ์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ ์๋ ์๋ค.
1 2 3 4 | app.get('/topic/:id/:mode',function(req,res){ res.send(req.params.id+','+req.params.mode) }) | cs |
0์ด๋ผ๋ ์ฟผ๋ฆฌ์คํธ๋ง ๊ฐ์ ์ฌ์ฉํ ์ ์๊ฒ๋๋ค.
์ด์ ์ฟผ๋ฆฌ์คํธ๋ง ๋ฐ ์๋ฉํฑ url ์ ๊ฐ๋จํ ์ฌ์ฉ๋ฒ์ ์์๋ณด์๋ค.
'Node.js > Node.js ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
8.1 Node js ORM ( Sequelize.js ) ์๊ฐ (0) | 2018.06.28 |
---|---|
7. ํ์ผ ์ ๋ก๋ (multer ๋ชจ๋ ์ด์ฉ) (0) | 2018.05.26 |
5. ํ ํ๋ฆฟ ์์ง pug (2) | 2018.04.12 |
express(3) - ๋์ ํ์ผ์๋น์ค (0) | 2018.04.06 |
express(2) - ์ ์ ํ์ผ์๋น์ค (0) | 2018.04.02 |
- Total
- Today
- Yesterday
- nestjs module
- @nestjs/config
- docker mysql
- typeorm
- android
- Promise error
- Spring
- ๊ธฐ์์ฒญAPI
- DeferredResult
- Promise bulk
- typeorm ์ฐ๊ฒฐ
- foreignkey
- nestjs directory
- nestjs/cli
- backend-framework
- node.js
- ๋น๋๊ธฐ ์์ฒญ
- nestjs typeorm
- Request_Limit_Exceeded
- nestjs config
- Spring Async
- sequelize
- ์๊ณ ๋ฆฌ์ฆ
- node.js backend
- NestJS
- nestjs project
- JavaScript
- nestjs doc
- ํ๋ก๊ทธ๋๋จธ์ค
- nestjs configService
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |