프로그래머스 풀스택 19
posted on 10 Sep 2024 under category programmers in series programmers
백엔드 기초: Node.js + Express 기본(10)
💫 Server와 Router의 역할
💫”Node.js에서의” 라우팅이란?
💫 user-demo 연결 실습!
router.use(express.json())
💫 Refactoring
💫 channel-demo 연결 실습!
💫 모듈 이름 변경
💫 use URL 설명
💫 <app.js파일>
app.use("/", userRouter)
app.use("/channels", channelRouter)
💫 <channels.js 파일>
router
.route('/')
//...생략
router
.route('/:id')
💫 회원마다 채널 가지게 ERD 그려보기
채널
💫 채널 API 설계 수정
채널
💫 채널 생성 테스트
.post((req, res) => {
// const {channelTitle} = req.body
if (req.body.channelTitle) {
let channel = req.body
db.set(id++, channel)
res.status(201).json({
message : `${db.get(id-1).channelTitle}님 채널 생성을 축하드립니다!`
})
} else {
res.status(400).json({
message : "죄송합니다. 요청 값을 다시 보내주세요."
})
}
})
💫 회원 채널 조회
💫 id없으면 예외 처리
if (userId == undefined) {// 예외 처리 2가지 1) userId가 body에 없을 때
res.status(404).json({
message : "로그인이 필요한 페이지입니다."
})
💫 if문 중첩 해결법
.get((req, res) => {
var {userId} = req.body
var channels = [] // {}형태가 아니라 [] list로 바꾸기
if(db.size && userId) { // 예외 처리 2가지 1) userId가 body에 없을 때
db.forEach(function(value, key) {
if (value.userId === userId) //value의 userId === userId
channels.push(value)
})
// 2) userId를 가진 채널이 없을 때
if (channels.length) {
res.status(200).json(channels)
} else {
notFoundChannel()
}
} else {
notFoundChannel()
}
}) // 채널 전체 조회
//...생략
function notFoundChannel() {
res.status(404).json({
message : "죄송합니다. 채널 정보를 찾을 수 없습니다."
})
}
회원
💫 <실습>
Y 일을 통해 명확히 알게 되었거나 이해한 부분(한 일)에 대해 정리 :
.route로 분류하는 건 express만의 장점!, Node.js에서의 라우팅이란?
W 배운 점과 시사점 :
💫 Server와 Router의 역할
💫”Node.js에서의” 라우팅이란?
T 응용하여 배운 것을 어디에 어떻게 적용할지:
백엔드 기초과정이 끝났는데 작은 프로젝트를 하나 진행해보는 게 쉽고 빠르게 복습할 수도 있고 능력을 발전시킬 수 있을 것이다!