채널 API 설계 (URL, http method/status, req/res)
- INSERT ✓ 채널 “생성” : POST /channels
- req : body (channelTitle, userId)
cf. userId는 body X header 숨겨서.. Token - res 201 : ${channelTitle}님 채널을 응원합니다. 👉 다른 페이지 띄워주고 싶어.. ex. 채널 관리 페이지
- UPDATE ✓ 채널 개별 “수정” : PUT /channels/:id
- req : URL (id), body (channelTitle)
- res 200 : 채널명이 성공적으로 수정되었습니다. 기존 : ${} -> 수정 : ${}
- DELETE ✓ 채널 개별 “삭제” : DELETE /channels/:id
- req : URL (id)
- res 200 : ${채널명}이 정상적으로 삭제 되었습니다. 👉 메인 페이지..
- SELECT ✓ 회원의 채널 전체 “조회” : GET /channels
- req : body (userId)
- res 200 : 채널 전체 데이터 list, json array
- SELECT ✓ 채널 개별 “조회” : GET /channels/:id
- req : URL (id)
- res 200 : 채널 개별 데이터
users.js 코드 리팩토링
const express = require('express')
const router = express.Router()
const conn = require('../mariadb')
router.use(express.join())
router.post('/login', function(req, res){
const {email, password} = req.body
let sql = `SELECT * FROM users WHERE email = ?`
conn.query(sql, email,
function(err, results) {
var loginUser = results[0]
if(loginUser && loginUser.password == password) {
res.status(200).json({
message : `${loginUser.name}님 로그인 되었습니다.`
})
} else {
res.status(404).json({
message : "이메일 또는 비밀번호가 틀렸습니다."
})
}
}
)
})
router.post('/join', function(req, res){
if (req.body == {}){
res.status(400).json({
message : `입력 값을 다시 확인해주세요.`
})
} else {
const {email, name, password, contact} = req.body
let sql = `INSERT INTO users (email, name, password, contact) VALUES (?, ?, ?, ?)`
let values = [email, name, password, contact]
conn.query(sql, values,
function(err, results){
res.status(201).json(results)
}
)
}
})
router
.route('/users')
.get(function(req,res){
let {email} = req.body
let sql = `SELECT * FROM users WHERE email = ?`
conn.query(sql, email,
function(err, results) {
res.status(200).json(results)
}
)
})
.delete(function(req,res){
let {email} = req.body
let sql =`DELETE FROM users WHERE email =?`
conn.query(sql, email,
function (err, results) {
res.status(200).json(results)
}
);
})
module.exports = router'pgms' 카테고리의 다른 글
| [5주차] - [9기] 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 10회차 - 24 (0) | 2026.02.06 |
|---|---|
| [5주차] - [9기] 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 10회차 - 23 (0) | 2026.02.04 |
| [5주차] - [9기] 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 10회차 - 21 (0) | 2026.02.02 |
| [4주차] - [9기] 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 10회차 - 20 (0) | 2026.01.30 |
| [4주차] - [9기] 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 10회차 - 19 (0) | 2026.01.29 |