ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [데브코스] 28일차 TIL
    TIL/교육 내용 정리 2024. 5. 5. 14:03

    Server와 router의 역할

    • Server : Request를 받습니다.
    • Router : Request의 URL에 따라 루트(route)를 정해줍니다. = 어디로 갈지 길만 정해줘요!
    • 각 루트(route)에서 할 일은 그럼 누가 정하나요 ❓

    Node.js Express에서의 라우팅 ❓

    Request(요청)dl 날아왔을 때, 원하는 경로에 따라 적절한 방향으로 경로를 안내해주는 것.

    UR, method → 호출 “콜백함수”

    user-demo.js 모듈화

    // 삭제
    const app = express()
    app.listen(7777)
    
    // 추가
    const router = express.Router()
    //app -> router
    

    rename, channel-demo 연결 모듈 이름 변경, use URL설명

    위와 같은 방법으로 함.

    회원마다 채널 가지게 ERD 그려보기

    회원

    id user_id pwd name

    1 testId1 1234 tester1
    2 testId2 5678 tester2

    채널

    id channel_title user_id (누구의 채널인지.) sub_num video_num

    1 달려라송아 testId1    
    2 뛰어라송아 testId1    
    3 걸어라 testId2    

    채널 API 설계 수정, 채널 생성 테스트

    채널

    • 채널 생성
      • POST /channels
        • req : body channelTitle, userId cf. userId는 body가 아니라 header로 받아야한다. JWT
        • res 201 : ${channelTitle}님 채널을 응원합니다.] 👉다른 페이지..ex)채널관리페이지
    • 채널 개별 수정
      • PUT /channel/:id
        • req : URL (id), body channelTitle
        • res 200 : 채널명이 성공적으로 수정되었습니다. 기존 : ${} ->수정 ${} 👉화면도 나중.....
    • 채널 개별 삭제
      • DELETE /channels/:id
        • req : URL(id)
        • res 200 : 삭제 되었습니다. 👉 메인페이지
    • 회원의 채널 전체 조회
      • GET /channels
        • req : body(userId)
        • res 200 : 채널 전체 데이터 list, json array
    • 채널 개별 조회
      • GET /channels/:id
        • req : URL (id)
        • res 200 : 채널 개별 데이xj

    <aside> 💡 무조건 있는 userId 로 채널을 만든다 생각.

    </aside>

    회원 채널 조회, id 없으면 예외처리

    //channels.js
    .get((req, res) =>{
            if(db.size){
                var {userId} =req.body
                var channels = [] // json 형태
                if(userId == undefined){// 1) userId가 body에 없으면
                    res.status(404).json({
                        message : `로그인이 필요한 페이지입니다.`
                    })
                }else{
                    db.forEach(function(value, key){
                        if(value.userId === userId){
                            channels.push(value)
                        }
                        // 2) userId가 가진 채널이 없으면
                    })
                    if(channels.length == 0){
                        res.status(404).json({
                            message : `조회할 채널이 없습니다.`
                        })
                    }else{
                        res.status(200).json(channels)
                    }
                    }
                }
            // 하나씩 맵에서 꺼내서 channels에 넣어줄거
           else{
                res.status(404).json({
                    message : `조회할 채널이 없습니다.`
                })
            }
        })
    

    id 없으면 예외처리, if문 고도화

    //chaennel.js
    function notFoundChannel(){
        res.status(404).json({
            message :`채널 정보를 찾을 수 없습니다.`
        })
    }
    

    if문 고도화 → 논리연산자를 이용해

    회원 API

    1. 로그인 POST(post는 body가 있다..) /login
    • req : (BODY) id, pw
    • res : $(name)님 환영합니다. 👉 메인 페이지 (고도화)
    1. 회원 가입 POST /join
    • req : (body)id, pw, 이름
    • res : $(name)님 환영합니다. 👉 로그인 페이지(고도화)
    1. 회원 정보 개별 조회 GET /users/:id
    • req : URL body (user id)
    • res : userid, name
    1. 회원 개별 탈퇴 DELETE /users/:id - req : URL (id)
    • res : $(name)님 다음에 또 뵙겠습니다. . or 메인 페이지 ****
    • 회원은 계정 당 채널 100개를 가질 수 있다.
      • 채널 생성
      • 채널 수정
      • 채널 삭제

    'TIL > 교육 내용 정리' 카테고리의 다른 글

    [데브코스]42일차 TIL  (0) 2024.05.20
    [데브코스] 30일차 TIL  (0) 2024.05.07
    [데브코스] 27일차 TIL  (0) 2024.05.04
    [데브코스] 26일차 TIL  (0) 2024.05.04
    [데브코스] 25일차 TIL  (0) 2024.05.04
Designed by Tistory.