Node.js 에서의 라우팅이란?
Request(요청)이 날아왔을 때, 원하는 경로에 따라 적절한 방향으로 경로를 안내해주는 것.
URL, method 에 따라 어떤 콜백함수를 호출하는가.
기존 코드 수정
먼저 app.js 를 만들어준다.
// express 모듈 셋팅
const express = require('express')
const app = express()
app.listen(3000)
// user-demo 소환
const userRouter = require('./routes/users')
// channel-demo 소환
const channelRouter = require('./routes/channels')
app.use("/", userRouter)
app.use("/channels", channelRouter)
- app.js 에서는 express의 서버 설정들을 도맡아 해준다.
- 변수에 require를 통해 user-demo를 담아주고 app.use를 통해 설정을 해준다.
- app.use의 첫번째 매개변수에는 경로명 같은 것이 들어가 있다. 이것의 의미는 해당 라우터의 앞에 붙는 URL을 뜻하는 것이다. channelRouter를 저렇게 설정하고channelRouter 에서 이와같이 설정해두면 저 콜백함수의 url은 그냥 '/sample'이 아니라 '/channels/sample' 이 된다. 이 기능을 사용하면 중복되는 부분을 제거할 수 있다.
router .route('/sample') .get((req,res) =>{ res.send("샘플입니다") })
// express 모듈 셋팅
const express = require('express')
const router = express.Router()
// const app = express()
// app.listen(3000)
// app.use(express.json())
router.use(express.json())
//회원가입
router.post('/join', function(req, res){
console.log(req.body)
if(req.body == {}){
res.status(400).json({
message : `입력 값을 다시 확인해주세요.`
})
}
else {
db.set(id++, req.body)
res.status(201).json({
message : `${db.get(id-1).name}님 환영합니다.`
})
}
})
module.exports = router
서버 설정 파트는 이제 더이상 필요없으므로 주석처리하였고 두번째 줄에 router 설정 코드가 추가되었다. 이 코드를 추가함으로서 이 user-demo.js를 express의 라우터로 활용할 수 있게 만든 것이다. 또한 기존 코드에서 app으로 되어 있던 것을 router로 교체해 주어야한다. 마지막으로 router 를 익스포트해보면 준비가 완료된다.
변수명 일괄변경
Visual Studio Code는 변수명 리팩토링 기능을 지원한다. 즉 코드에 퍼져있는 특정 변수의 이름을 일괄변경하는 것도 지원한다는 뜻이다.
변수를 선택하고 마우스 우측을 클릭하고 기호 이름 바꾸기를 선택하거나 F2를 누른다. 이때 변수 선택은 변수의 선언부에서 해야만 동작한다.
그렇게 하면 변경할 이름을 입력하는 창이 뜬다. 새 변수명을 입력하고 엔터를 치면 모든 코드에서 일괄적으로 변경이 되는 것을 알 수 있다.
라우터 이름 규칙
객체명의 복수형으로 이름을 작성한다. user-demo는 users로, channel-demo는 channels로 변경해준다.
회원과 채널 ERD
회원과 채널 ERD는 1:N의 관계를 가진다. 채널은 회원의 PK를 함께 저장함으로서 어느 회원의 채널인지 알 수 있다. 회원은 숫자 id는 제외하고 userId를 PK로 한다고 친다.
후기
라우팅을 통해 여러개 파일로 분리된 코드를 한번에 실행하는 방법에 대해 알아보았다. 또한 회원과 채널의 관계에 대해 얼아보고 그에 맞게 코드도 수정해보았다.
키워드: 프로그래머스 데브코스, 국비지원교육, 코딩부트캠프
'프로그래머스 풀스택 데브코스 > 데브코스 TIL' 카테고리의 다른 글
웹 풀사이클 데브코스 TIL 23일차 (0) | 2023.12.19 |
---|---|
웹 풀사이클 데브코스 TIL 22일차 (0) | 2023.12.18 |
웹 풀사이클 데브코스 TIL 20일차 (0) | 2023.12.14 |
웹 풀사이클 데브코스 TIL 19일차 (0) | 2023.12.13 |
웹 풀사이클 데브코스 TIL 18일차 (0) | 2023.12.12 |