Backend ๐Ÿ“š/Node.js

[Node] BodyParser, PostMan, ํšŒ์› ๊ฐ€์ž… ๊ธฐ๋Šฅ (+ Nodemon)

leejaejae 2024. 7. 31. 15:43

0. ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ!

  • BodyParser ๋ž€
    • ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ์ •๋ณด๋ฅผ ๋ณด๋‚ผ ๋•Œ Bodyparser Dependency ํ•„์š”ํ•จ
    • Bodyparser๊ฐ€ Client์—์„œ ์˜ค๋Š” ์ •๋ณด๋ฅผ ์„œ๋ฒ„์—์„œ ๋ถ„์„ํ•ด์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฑฐ์ž„

 

1. BodyParser ๋‹ค์šด๋กœ๋“œ

npm instal body-parser --save

 

2. Postman ๋‹ค์šด๋กœ๋“œ

- ๋งŒ๋“ค์–ด์ง„ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—†์–ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ผ ์ˆ˜ ์—†์Œ. ๊ทธ๋ž˜์„œ ๋Œ€์šฉ์œผ๋กœ Postman ์‚ฌ์šฉ 

 

3. ํšŒ์›๊ฐ€์ž… ์œ„ํ•œ ๋ผ์šฐํ„ฐ ๋งŒ๋“ค๊ธฐ

const express = require('express')
const app = express()
const port = 4000
const bodyParser = require('body-parser');  // ๋‹ค์šด๋ฐ›์€ bodyParser ๊ฐ€์ ธ์˜ค๊ธฐ
const { User } = require('./models/User');  // User ๊ฐ€์ ธ์˜ค๊ธฐ

// application/x-www-form-urlencoded ํƒ€์ž… ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•ด์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ
app.use(bodyParser.urlencoded({extended: true})); 

// application/json ํƒ€์ž… ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•ด์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ
app.use(bodyParser.json());

const mongoose = require('mongoose')
mongoose.connect('mongodb+srv://์•„์ด๋””๋น„๋ฐ€๋ฒˆํ˜ธ@bolier-plate.unathks.mongodb.net/?retryWrites=true&w=majority&appName=bolier-plate', {})
.then(() => console.log('MongoDB connected..'))
.catch(err => console.log(err))


app.get('/', (req, res) => {  
  res.send('node.js ๊ณต๋ถ€ ์‹œ์ž‘!')
})


app.post('/register', async (req, res) => {
  //ํšŒ์›๊ฐ€์ž…์‹œ ํ•„์š” ์ •๋ณด๋ฅผ client์—์„œ ๊ฐ€์ ธ์˜ค๋ฉด
  //๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฝ์ž…ํ•œ๋‹ค

  //body parser๋ฅผ ํ†ตํ•ด body์— ๋‹ด๊ธด ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค
  const user = new User(req.body)

  //mongoDB ๋ฉ”์„œ๋“œ, user๋ชจ๋ธ์— ์ €์žฅ
  const result = await user.save().then(()=>{
    res.status(200).json({
      success: true
    })
  }).catch((err)=>{
    res.json({ success: false, err })
  })
})


app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})

 

4. Postman ์‚ฌ์šฉํ•ด ํšŒ์›๊ฐ€์ž… ํ•ด๋ณด๊ธฐ

1) ์ฝ”๋“œ ์‹คํ–‰์‹œํ‚ค๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ํ™•์ธ

npm run start


2) ๊ฒฐ๊ณผ ๐ŸŽ‰

 

Tips. Nodemon

0. Node Mon ์ด๋ž€

  • ์›๋ž˜ Node์„œ๋ฒ„๋ฅผ ํ‚ค๊ณ  ์„œ๋ฒ„ ๋‚ด์—์„œ ๋ณ€๊ฒฝ์ด ์ƒ๊ธฐ๋ฉด ์„œ๋ฒ„๋ฅผ ๋‚ด๋ฆฌ๊ณ  ๋‹ค์‹œ ๊ธฐ๋™์‹œ์ผœ์•ผ ๋ฐ”๋€ ๋‚ด์šฉ์ด ๋ฐ˜์˜๋˜์ง€๋งŒ
  • Node Mon tool๋ฅผ ์ด์šฉํ•˜๋ฉด ์†Œ์Šค๋ฅผ ๋ณ€๊ฒฐํ•  ๋•Œ ๊ทธ๊ฑธ ๊ฐ์ง€ํ•ด์„œ ์ž๋™์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์žฌ ์‹œ์ž‘ํ•ด์คŒ

 

1. Node Mon ๋‹ค์šด๋กœ๋“œ

npm install nodemon --save-dev

- --save-dev`๋ฅผ ๋ถ™์—ฟ๊ธฐ ๋•Œ๋ฌธ์— devDependencies์— Node Mon dependencies ์ƒ์„ฑ๋จ

(-dev: ๋กœ์ปฌ ๋ชจ๋“œ์™€ ๋ฐฐํฌํ•˜๊ณ  ๋‚œ ์ดํ›„ ๋ชจ๋“œ๊ฐ€ ์žˆ๋Š”๋ฐ dev๋ฅผ ๋ถ™์ด๋ฉด local์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๋Š” ๋œป์ž„)

 

2. Node Mon์œผ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ

1) script ์ถ”๊ฐ€ ํ•˜๊ธฐ

"backend": "nodemon index.js"


2) ํ„ฐ๋ฏธ๋„์—์„œ ์‹คํ–‰

npm run backend

 

3. ๊ฒฐ๊ณผ ๐ŸŽ‰


โ˜… ๋”ฐ๋ผํ•˜๋ฉฐ ๋ฐฐ์šฐ๋Š” ๋…ธ๋“œ, ๋ฆฌ์•กํŠธ ์‹œ๋ฆฌ์ฆˆ - ๊ธฐ๋ณธ๊ฐ•์˜ ํด๋ก ์ฝ”๋”ฉ ์ž…๋‹ˆ๋‹ค.