Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 컴퓨터공학 #자료구조 #스택 #c++ #알고리즘 #백준문제풀이
- BOJ #컴퓨터공학 #C++ #알고리즘 #자료구조
- 컴퓨터공학 #c #c언어 #문자열입력
- 잔
- 컴퓨터공학 #Java #자바 #클래스 #객체 #인스턴스
- HTML #CSS
Archives
- Today
- Total
영벨롭 개발 일지
[Express]라우터(Router) 정리 본문
[ 라우터 Router 란? ]
라우터는 클라이언트의 요청 경로를 보고 이 요청을 처리할 수 있는 곳으로 기능을 전달해주는 역할을 합니다.
이러한 역할을 라우팅이라고 하는데, 애플리케이션 엔드 포인트(URI)의 정의를 하고 URI가 클라이언트 요청에 응답하는 방식을 의미합니다.
익스프레스는 라우팅을 깔끔하게 관리할 수 있다는 점에서 용이합니다.
[ 라우터 사용하기 ]
express.Router()
express.Router 클래스를 사용하면 모듈식 마운팅이 가능한 핸들러를 작성할 수 있습니다. Router 인스턴스는 완전한 미들웨어이자 라우팅 시스템이며, 따라서 '미니 앱'이라고 불리는 경우가 많습니다.
Why Router?
app.js에서 app.method()를 사용해 라우팅을 할 수 있지만, 프로젝트의 규모가 큰 경우 라우팅 할 경로가 많아지면서 app.js 파일의 코드가 길어지게 됩니다.
이 경우 유지보수가 어려워질 수 있으므로 route를 분리하여 사용하게 됩니다.
const express = require('express');
const router = express.Router();
// method: get, post, put, delete, etc.
router.method(path, (req, res, next) => { ... });
module.exports = router;
routes/user.js
프로젝트의 server 관련 파일들이 있는 위치에서 route 폴더를 만들어줍니다.
route 폴더 아래 사용자 관련 기능 라우팅을 담당할 user.js 파일을 하나 만들겠습니다.
// routes/user.js
const express = require('express');
const router = express.Router();
const User = require('../model/User');
router.get('/', (req, res) => {
// 응답 처리
});
router.post('/register', (req, res) => {
// 응답 처리
});
module.exports = router;
app.js
app.js에서 /user 인 엔드포인트로 라우트된 모듈을 불러줍니다.
const express = require('express');
const app = express();
const PORT = 4000;
// routes
const userRouter = require('./routes/user')
app.get('/', (req, res) => {
res.send({ success: true })
})
app.use('/user', userRouter)
app.listen(PORT, () => {
console.log(`Server is running on ${PORT}`)
})
반응형
'Back-end > Express' 카테고리의 다른 글
[Express]express & mongoose 회원가입과 로그인 구현하기 (0) | 2022.07.08 |
---|---|
[Express]Node.js(Express)와 MongoDB(Mongoose) 연동 (0) | 2022.07.07 |
[Express]프로젝트 시작 - React와 Express 연동 (0) | 2022.06.09 |