본문 바로가기

프로그래머스 풀스택 데브코스/데브코스 TIL

웹 풀사이클 데브코스 TIL 20일차

빈 객체 확인하는 방법

  1. Object.keys()
  2. for in
  3. lodash : isEmpty
const obj1 = {}
const obj2 = {message: "안 빔"}
const num =1
const str1 = "one"
const str2 = "" //문자열도 객체이다

console.log(Object.keys(obj1).length === 0)
console.log(Object.keys(obj2).length === 0)

console.log(Object.keys(num).length === 0)
console.log(Object.keys(str1).length === 0)
console.log(Object.keys(str2).length === 0)

// true
// false
// true
// false
// true

obj의 길이가 0이면 빈 객체인지 알수 있고, 문자열도 사실은 객체이므로 같은 방식으로 확인할 수 있다. 하지만 숫자는 제대로 작동하지 않는다.

function isEmpty(obj){
    if(Object.keys(obj).length === 0){
        return true;
    }
    else{
        return false;
    }
}

console.log(isEmpty(str1))

이와 같이 함수로 만들어서 사용할 수도 있다.

로그인

//로그인
app.post('/login', function(req, res){
    console.log(req.body)

  // userId가 디에 저장된 회원인지 확인해야
  const {userId, password} = req.body

  let loginUser = {}

  db.forEach(function(user, id) {
      if (user.userId === userId){
          loginUser = user
        }  
  })
  //id 값을 못 찾았으면
  if(isExist(loginUser)) {
    console.log("같은거 발견") 
        //pwd 도 맞는지 비교
        if(loginUser.password === password) {
            console.log("패스워드도 같다!")
            }
        else {
            console.log("패스워드 틀렸다!")
        }
  }
  else{
    console.log("입력하신 아이디는 없는 아이디 입니다.")
  }
})
// 객체가 비었는지 여부 확인하는 함수
function isExist(obj){
    if(Object.keys(obj).length){
        return true;
    }
    else{
        return false;
    }
}

req.body 에서 객체 비구조화를 이용하 userId 와 password를 거낸다. forEach 문으로 아이디가 존재하는지 확인하고 존재하면 loginUser 변수에 넣는다. 객체가 비지 않았으면 패스워드도 확인하는 절차로 들어가고, 객체가 비었으면 없는 아이디로 판단한다.

채널 API 설계

  1. 채널 생성 : POST /channels

    • req: body (channelTitle)
    • res 201: ${channelTitle}님 채널을 응원합니다.
  2. 채널 개별 수정: PUT /channels/:id

    • req: URL(id), body (channelTitle)
    • res 200: 채널명이 성공적으로 수정되었습니다. 기존 ${} -> 수정 : ${}
  3. 채널 개별 삭제: DELETE /channels/:id

    • req: URL(id)
    • res 200: 삭제되었습니다
  4. 채널 전체 조회: GET /channels

    • req: X
    • res 200: 채널 전체 데이터
  5. 채널 개별 조회: GET /channels/:id

    • req: URL(id)
    • res 200: 채널 개별 데이터

후기

이전에 해봤던 것과 비슷한 내용을 연습삼아 해보는 시간이었던것 같다. 빈 객체를 확인하는 방법들과 로그인의 로직에 대해서도 알아보았다.

키워드: 프로그래머스 데브코스, 국비지원교육, 코딩부트캠프