HTTP method
- 생성 : POST
ex. 회원가입 = 나 좀 등록해줘 = id, password, name, email, contact로
<< Get과 달리 바디에 숨겨서 보내야함
- 조회 : GET
ex. URL로 데이터 보냈는데?
=> POST은 브라우저에서 확인할 수 없음.
Postman
을 사용해 Post를 테스트해보자.
app.post('/test', function(req, res){
res.send('Hello POST!!!')
})

1️⃣ postman이 {"message" : "Bye Post!!!"} 전송함

2️⃣ 서버에서 받아 들이는 형태
req = {
headers: {
"content-type": "application/json",
...
},
body: "{"message":"hello"}" ← 그냥 문자열 덩어리
}
app.use(express.json())
app.post('/test', function(req, res){
//body에 숨겨져서 들어온 데이터를 화면에 뿌려줘보자.
console.log(req.body.message)
res.send(req.body.message)
})
3️⃣ app.ues(express.json()) 실행
: Body읽어서 JSON 파싱해줌 -> req.body.~ 사용 가능해짐
req.body = { message: 'hello'}
4️⃣ res.send(req.body.message)
: 서버가 응답으로 body값을 다시 꺼내서 보냄 -> Postman의 하단 바디에 보여짐.
활용해서 유튜버-데모 업그레이드 해보자.
//express 모듈 셋팅
import express from 'express'
const app = express()
app.listen(3004, () => {
console.log("Server is running on http://localhost:3004")
})
// 데이터 셋팅
let youtuber1 = {
channelTitle : "YES24",
sub : "20.1만명",
videoNum : "1.2천개"
}
let youtuber2 = {
channelTitle : "해쭈 [HAEJOO]",
sub : "82.7만명",
videoNum : "507개"
}
let youtuber3 = {
channelTitle : "딩고 뮤직 / dingo music",
sub : "547만명",
videoNum : "3.2천개"
}
let db = new Map()
db.set(1, youtuber1) // 키로 벨류를 찾을 수 있는 한 쌍을 저장
db.set(2, youtuber2)
db.set(3, youtuber3)
// REST API 설계
app.get('/youtuber/:id', function(req, res){
let {id} = req.params
id = parseInt(id)
const youtuber = db.get(id)
if(youtuber == undefined){
res.json({
message : "유튜버 정보를 찾을 수 없습니다."
})
} else {
res.json(youtuber)
}
})
app.get('/', function(reqs, res){
res.send('Hello World')
})
기존 코드
1. 기존 유튜버 3명만 정보를 반환할 수 있었고, 새로운 유류버를 등록할 수 없음
2. 1,2,3 유튜버에 대한 api
=> 💡 POST를 활용해서 유튜버를 추가해보자.
<API 설계(URL, method)>
0) 전체 유튜버 "조회" GET /youtubers
- req : X
- res : map을 전체 조회
1) 개별 유튜버 "조회" GET /youtubers/:id : id로 map에서 객체를 찾아서, 그 객체의 정보를 뿌려줌
- req : params.id <= map 에 저장된 Key값을 전달
- res : map에서 id로 객체를 조회해서 전달
2) 유튜버 등록 => POST /youtubers
- req : body <= channelTitle, sub = 0, videoNum =0 신규 유튜버 정보를 전달, db에 저장까지 해줌
- req : "channelTitle님, 유튜버 생활을 응원합니다!"
//express 모듈 셋팅
import express from 'express'
const app = express()
app.listen(3004, () => {
console.log("Server is running on http://localhost:3004")
})
// 데이터 셋팅
let youtuber1 = {
channelTitle : "YES24",
sub : "20.1만명",
videoNum : "1.2천개"
}
let youtuber2 = {
channelTitle : "해쭈 [HAEJOO]",
sub : "82.7만명",
videoNum : "507개"
}
let youtuber3 = {
channelTitle : "딩고 뮤직 / dingo music",
sub : "547만명",
videoNum : "3.2천개"
}
let db = new Map()
var id = 1
db.set(id, youtuber1) // 키로 벨류를 찾을 수 있는 한 쌍을 저장
db.set(id++, youtuber2)
db.set(id++, youtuber3)
// REST API 설계
app.get('/youtuber/:id', function(req, res){
let {id} = req.params
id = parseInt(id)
const youtuber = db.get(id)
if(youtuber == undefined){
res.json({
message : "유튜버 정보를 찾을 수 없습니다."
})
} else {
res.json(youtuber)
}
})
app.use(express.json()) // http 외 모듈인 '미들웨어': json 설정
app.post('/youtuber', (req, res) => {
console.log(req.body)
//등록 : Map(db)에 저장(put) 해줘야됨
db.set(id++, req.body)
res.json({
message : `${db.get(id-1).channelTitle}님, 유튜버 생활을 응원합니다!`
})
})
app.get('/', function(reqs, res){
res.send('Hello World')
})
1명씩 등록 가능하고,
get에서 확인 가능함!


'Devcourse' 카테고리의 다른 글
| <프로그래머스 데브코스 풀스택> 2026-01-27 TIL(2) 핸들러, 예외처리, == vs === (0) | 2026.01.28 |
|---|---|
| [프로그래머스 데브코스 풀스택] 2026-01-27 TIL foreach문, map 함수, 리팩토링, HTTP 상태 코드 (0) | 2026.01.27 |
| <프로그래머스 데브코스 풀스택> 2026-01-23 TIL (0) | 2026.01.23 |
| [프로그래머스 데브코스 풀스택] 2026-01-22 TIL (0) | 2026.01.21 |
| <프로그래머스 데브코스 풀스택> 1차 역량평가 준비 (0) | 2026.01.20 |