프로그래머스 풀스택 18
posted on 09 Sep 2024 under category programmers in series programmers
백엔드 기초: Node.js + Express 기본(9)
💫 로그인
app.post('/login', (req, res) => {
console.log(req.body) //userId, pwd
// userId가 db에 저장된 회원인지 확인해야함!
const {userId} = req.body
db.forEach( (a, b, c) => {
console.log(`a: ${a}, b: ${b}, c: ${c}`)
})
// pwd도 맞는지 비교
💫 <실습>
💫 로그인 예외 처리
💫 빈 객체 확인하는 방법
💫 <실습>
💫 <isEmpty 수정>
function isEmpty(obj) {
if (typeof obj === "object" && obj.constructor === Object) {
return Object.keys(obj).length === 0;
} else if (typeof obj === "string") {
return obj.length === 0;
}
return false;
}
💫 <실습>
💫 <따로 고도화한 부분>
간소화된 부분 설명:
Array.from(db.values()) : Map 객체의 values() 메소드를 사용하여 Map의 값들을 배열로 변환. 이 배열을 기반으로 find 메서드를 사용하여 userId가 일치하는 사용자를 검색. 이를 통해 forEach 대신 훨씬 간결하게 데이터를 검색가능.
loginUser 검증: isExist 함수를 제거하고, loginUser가 존재하는지 바로 확인하여 코드 흐름을 간단하게 만듦.
응답 처리 : res.status().json()을 사용하여 로그인 성공 및 실패에 대한 메시지를 바로 처리.
채널
채널
채널
채널 생성
채널 생성 페이지 : 채널 생성 버튼 클릭 시 => 입력 받은 채널명을 받아서, 채널 생성(등록)API
채널 관리
채널 관리 페이지 (1) 화면 출력 => 이 회원이 소유한 전체 채널 조회 API (2) 삭제 버튼 클릭 시 => 개별 채널 삭제 API
채널 수정
채널 수정 페이지 (1) 기존 개별 채널 정보 조회 API (2) 수정 완료 버튼 클릭 시 => 개별 채널 수정 API
const express = require('express')
const app = express()
app.listen(7777)
app.use(express.json())
let db = new Map()
var id = 1
app
.route('/channels')
.get((req, res) => {
res.send("전체 조회")
}) // 채널 전체 조회
.post((req, res) => {
res.send("개별 생성")
})// 채널 개별 생성
app
.route('/channels/:id')
.get((req, res) => {
res.send("개별 조회")
}) //채널 개별 조회
.put((req, res) => {
res.send("개별 수정")
}) //채널 개별 수정
.delete((req, res) => {
res.send("개별 삭제")
}); //채널 개별 삭제
💫 <채널 생성 실습>
💫 <채널 개별 조회 실습>
💫 <채널 개별 삭제 실습>
💫 <채널 개별 수정 실습>
💫 <채널 전체 조회 실습>
Y 일을 통해 명확히 알게 되었거나 이해한 부분(한 일)에 대해 정리 :
빈 객체 확인법: Object.keys(), for in 반복문, lodash library : isEmpty
Array.from(db.values())
W 배운 점과 시사점 :
💫 빈 객체 확인하는 방법
💫 Array.from(db.values()) : Map 객체의 values() 메소드를 사용하여 Map의 값들을 배열로 변환. 이 배열을 기반으로 find 메서드를 사용하여 userId가 일치하는 사용자를 검색. 이를 통해 forEach 대신 훨씬 간결하게 데이터를 검색가능.
T 응용하여 배운 것을 어디에 어떻게 적용할지:
오늘 배운 빈 객체 확인하는 방법과 Array.from(db.values()을 이용해 코드를 좀 더 간결하게 짤 수 있도록 노력할 것이다!