pgms

[5주차] - [9기] 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 10회차 - 22

Ejah 2026. 2. 3. 23:06

채널 API 설계 (URL, http method/status, req/res)

  1. INSERT ✓ 채널 “생성” : POST /channels
  • req : body (channelTitle, userId)
    cf. userId는 body X header 숨겨서.. Token
  • res 201 : ${channelTitle}님 채널을 응원합니다. 👉 다른 페이지 띄워주고 싶어.. ex. 채널 관리 페이지
  1. UPDATE ✓ 채널 개별 “수정” : PUT /channels/:id
  • req : URL (id), body (channelTitle)
  • res 200 : 채널명이 성공적으로 수정되었습니다. 기존 : ${} -> 수정 : ${}
  1. DELETE ✓ 채널 개별 “삭제” : DELETE /channels/:id
  • req : URL (id)
  • res 200 : ${채널명}이 정상적으로 삭제 되었습니다. 👉 메인 페이지..
  1. SELECT ✓ 회원의 채널 전체 “조회” : GET /channels
  • req : body (userId)
  • res 200 : 채널 전체 데이터 list, json array
  1. 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