๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[๊ฐœ๋ฐœ] Practice/Node.js MongoDB

[Node.js / MongoDB] GET ์š”์ฒญ ์ฒ˜๋ฆฌํ•ด๋ณด๊ธฐ

by Connecting-the-dots 2022. 3. 11.
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’ก ์‹ค์Šต ํฌ์ธํŠธ!

  • express ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด์•˜๋‹ค.
  • node.js ๋ฅผ ๋ฏธ๋ฆฌ ์„ค์น˜ํ•ด์ฃผ๊ณ , ํ„ฐ๋ฏธ๋„์—์„œ node ๋ผ๋Š” ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„œ๋ฒ„๋ฅผ ๋„์›Œ๋ณด์•˜๋‹ค. ( + nodemon)
  • ํŠน์ •ํ•œ ๊ฒฝ๋กœ๋กœ GET ์š”์ฒญํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ณต๋ถ€ํ–ˆ๋‹ค.

๐Ÿ’œ express ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ๋ฒ•

  • ํ„ฐ๋ฏธ๋„์—์„œ npm install express ๋กœ express ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•œ ํ›„, express ๋ฅผ ์‚ฌ์šฉํ•  JavaScript ํŒŒ์ผ์— ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜๋ฉด ์„œ๋ฒ„๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๋‹ค.
  • ์ฒซ ๋‘ ์ค„์€ express ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฒจ๋ถ€ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ๋ฒ•์ด๊ณ , app.listen() ์€ ์›ํ•˜๋Š” ํฌํŠธ์— ์„œ๋ฒ„๋ฅผ ์—ด์–ด์ฃผ๋Š” ๋ฌธ๋ฒ•์ด๋‹ค.
  • listen() ํ•จ์ˆ˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์„œ๋ฒ„๋ฅผ ์˜คํ”ˆํ•  ํฌํŠธ๋ฒˆํ˜ธ์™€ ํ•จ์ˆ˜๋ฅผ ํ•„์š”๋กœ ํ•œ๋‹ค.
  • ๋‚˜์˜ ๊ฒฝ์šฐ JavaScript ํŒŒ์ผ์€ server.js ๋ฅผ, ํฌํŠธ๋ฒˆํ˜ธ๋Š” 8080 ์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

 

 

// express ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฒจ๋ถ€
const express = require('express');

// express ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ
const app = express();

// listen() ํ•จ์ˆ˜๋Š” ๋‘ ๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•„์š”๋กœ ํ•จ
// listen(์„œ๋ฒ„๋ฅผ ์˜คํ”ˆํ•  ํฌํŠธ๋ฒˆํ˜ธ, function(){์„œ๋ฒ„๊ฐ€ ์˜คํ”ˆ๋˜๋ฉด ์‹คํ–‰ํ•  ์ฝ”๋“œ})
app.listen(8080, function(){
    console.log('listening on 8080');
})
  • ์œ„์™€ ๊ฐ™์ด ์ž‘์„ฑํ•œ ์ƒํƒœ์—์„œ ํ„ฐ๋ฏธ๋„์„ ์ผ  ํ›„, node server.js ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์„œ๋ฒ„๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„œ๋ฒ„๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋–ด๋‹ค๋ฉด ๋ธŒ๋ผ์šฐ์ €์— localhost:8080 ๋กœ ์ ‘์†ํ•˜๋ฉด ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋งค๋ฒˆ ์„œ๋ฒ„๋ฅผ ๋„๊ณ  ์ผœ๊ธฐ๊ฐ€ ๊ท€์ฐฎ๋‹ค๋ฉด nodemon ์„ ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉํ•ด๋ณด์ž.
    • ํ„ฐ๋ฏธ๋„์— npm install nodemon ์„ ์ž…๋ ฅํ•˜์—ฌ ์„ค์น˜ํ•œ ํ›„, nodemon server.js ์™€ ๊ฐ™์ด ์ž…๋ ฅํ•ด์ฃผ๋ฉด ์„œ๋ฒ„๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๋‹ค.
    • ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ  ์ €์žฅํ•  ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ๋„์›Œ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ƒˆ๋กœ๊ณ ์นจ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

๐Ÿ’œ GET ์š”์ฒญ ์ฒ˜๋ฆฌํ•ด๋ณด๊ธฐ

GET ์š”์ฒญ์€ ์ฃผ์†Œ์ฐฝ์— URL ์„ ์ž…๋ ฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ, ๋ฐ์ดํ„ฐ ์กฐํšŒ์— ์ ํ•ฉํ•˜๋‹ค.

  • ์ฒซ ์…‹ํŒ… ๊ณผ์ •์„ ๋งˆ์นœ ํ›„์— ์ •์ƒ์ ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ๋„์›Œ์กŒ๋‹ค๋ฉด ๋ธŒ๋ผ์šฐ์ €์— ์œ„์™€ ๊ฐ™์ด "Cannot GET /"์ด๋ ‡๊ฒŒ ๋œฌ๋‹ค.
    (๋†€๋ž๊ฒŒ๋„ ์ด๊ฒŒ ์ •์ƒ์ด๋‹ค. ์•„์ง GET ์š”์ฒญ์ด๋ž€ ๊ฑธ ํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ!)

// ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ / ๊ฒฝ๋กœ์— ์ ‘์†ํ•˜๋ฉด ( / ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉด ํ™ˆํŽ˜์ด์ง€์— ํ•ด๋‹น)
app.get('/', function(req, res){
    // 'ํ™ˆํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.' ๋ผ๋Š” ์•ˆ๋‚ด๋ฌธ๊ตฌ๋ฅผ ๋„์›Œ์ค€๋‹ค.
    res.send('ํ™ˆํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.')
})
  • ์œ„์™€ ๊ฐ™์ด server.js ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋กœ localhost:8080 ์— ์ ‘์†ํ–ˆ์„ ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์ด ์›ํ•˜๋Š” ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


  • ์ด๋ฒˆ์—๋Š” localhost:8080 ์— '/pet' ์ด๋ผ๋Š” ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ, 'ํŽซ์šฉํ’ˆ ํŒ๋งคํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.' ๋ผ๋Š” ์•ˆ๋‚ด๋ฌธ๊ตฌ๋ฅผ ๋„์›Œ๋ณด์•˜๋‹ค.
// ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ /pet ๊ฒฝ๋กœ์— ์ ‘์†ํ•˜๋ฉด
app.get('/pet', function(req, res){
    // 'ํŽซ์šฉํ’ˆ ํŒ๋งคํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.' ๋ผ๋Š” ์•ˆ๋‚ด๋ฌธ๊ตฌ๋ฅผ ๋„์›Œ์ค€๋‹ค.
    res.send('ํŽซ์šฉํ’ˆ ํŒ๋งคํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.')
})

728x90
๋ฐ˜์‘ํ˜•