songining
article thumbnail

node.js express ๋ฅผ ์„ค์น˜ํ•˜์—ฌ REST API๋ฅผ ๊ตฌ์ถ•ํ•ด๋ณด์•˜๋‹ค. 

REST API๋Š” ์ตœ๊ทผ ์ƒ๋‹น์ˆ˜์˜ ์›น ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ ํšจ๊ณผ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. ์ €๋ฒˆ ๊ฐ•์˜์— ์ด์–ด์„œ ์ „์ฒด ๊ณ ๊ฐ ๋ชฉ๋ก์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” API๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด์•˜๋‹ค. 

ํ„ฐ๋ฏธ๋„์— ๊ฐ๊ฐ npm run server ์™€ npm run client๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๊ฐ๊ฐ์˜ ํฌํŠธ๊ฐ€ ์—ด๋ฆฌ๋„๋ก ์„œ๋ฒ„์— ๋งŒ๋“  package.json์˜ scripts์— ์ž‘์„ฑํ•ด๋‘์—ˆ๋‹ค. 

 

์„œ๋ฒ„            <->          ํด๋ผ์ด์–ธํŠธ 

5000๋ฒˆ ํฌํŠธ               3000๋ฒˆ ํฌํŠธ 

package.json              package.json 

server.js                     app.js 

 

ํด๋ผ์ด์–ธํŠธ์˜ package.json ์—   "proxy": "http://localhost:5000/" ๋ฅผ ๋„ฃ์–ด์„œ ํ•ด๋‹น ํฌํŠธ๋ฅผ API ์„œ๋ฒ„๋กœ ์ด์šฉํ•˜๋„๋ก ํ•ด์ฃผ์—ˆ๋‹ค. 

/api/customers ๊ฒฝ๋กœ๋กœ ๋“ค์–ด๊ฐ€๋ฉด 3๋ช…์˜ ๋ฐ์ดํ„ฐ๊ฐ€ jsonํ˜•ํƒœ๋กœ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

 

๋ฆฌ์•กํŠธ๋Š” ๋น„๋™๊ธฐ ํ†ต์‹ ์œผ๋กœ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ๋น„๋™๊ธฐ ํ†ต์‹ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด customers ๋ณ€์ˆ˜์— ๊ฐ’์ด ๋“ค์–ด์žˆ์„ ๋•Œ๋งŒ ๊ฐ ๊ณ ๊ฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค. 

API ์„œ๋ฒ„์— ์ ‘๊ทผํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฉ”์†Œ๋“œ๋Š” componentDidMount()๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋งˆ์šด๋“œ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰๋œ๋‹ค. ๋ฐ›์•„์˜จ json ๋ฐ์ดํ„ฐ๋ฅผ state๋ณ€์ˆ˜ customers์— ๋„ฃ์–ด์ค€๋‹ค. 

 

app.js

 


์ฐธ๊ณ : https://ndb796.tistory.com/218 [์•ˆ๊ฒฝ์žก์ด๊ฐœ๋ฐœ์ž]