우리는 각자의 집에서 택배를 보내거나 받을 수 있다.
이것은 약속된 '주소' 덕분에 가능한데, 라우터는 이 주소를 만들어 주는 것이라고 할 수 있다.
라우터란?
클라이언트의 요청 경로(path)를 보고 이 요청을 처리 할 수 있는 곳으로 기능을 전달해주는 역할을 한다.
이러한 역할을 라우팅이라고 하는데, 엔드 포인트 (URI)의 정의, 그리고 URI가 클라이언트 요청에 응답하는 방식을 의미한다.
라우터 사용하기
Express에선 이러한 Router를 미들웨어로서 제공하고 있다.
다음과 같은 순서로 라우터 미들웨어를 사용할 수 있다.
- 라우터 객체 참조
- 라우팅 함수 등록
- 라우터 객체를 app 객체에 등록
//보통 routes 폴더 안 생성해준 임의의 js 파일에 작성
//라우터 객체 참조
const router = express.Router();
//보통 routes 폴더 안 생성해준 임의의 js 파일에 작성
//라우팅 함수 등록
router.post("/posts", (req, res) => {});
router.get("/posts", (req, res) => {});
//일반적으로 가장 최상단 폴더의 app.js 혹은 index.js 파일에 입력
//라우터 객체를 app 객체에 등록
app.use('/api', require('./routes/posts'))
app.use('/api', require('./routes/comments'))
//보통 routes 폴더 안 생성해준 임의의 js 파일에 작성
//라우터 파일을 나눠줬기 때문에 글로벌 엑세스(global access)시켜준다
module.exports = router;
URL 파라미터 사용하기
URL 파라미터는 요청 파라미터(query string)와 달리 URL 주소의 일부로 들어간다.
위의 routes/user.js에서 /:userId는 /user/ 뒤에 오는 값을 파라미터로 처리하겠다는 의미이다.
이렇게 지정한 파라미터는 req.params 객체 안에 들어간다. 따라서 :userId으로 표시된 부분에 담겨 전달된 값은 req.params.userId 속성으로 접근할 수 있다. 이것을 바로 토큰(Token)이라고 부른다.
'Study > node.js' 카테고리의 다른 글
Node.js - TDD 시작하기 (2) (0) | 2023.11.17 |
---|---|
Node.js - TDD 시작하기 (1) (0) | 2023.11.16 |
Node.js - TDD (Test Driven Development) (0) | 2023.11.15 |
[Express] 익스프레스 에러 핸들링 Error handling (0) | 2022.11.29 |
[Express] 익스프레스 restAPI의 PUT과 Patch의 차이점과 사용방법 (1) | 2022.11.29 |