본문 바로가기
NodeJS

[NodeJS] Router 객체로 라우팅 분리

by Yeoseungwon 2023. 7. 1.
728x90

익스프레스에서는 라우터를 분리할 수 있는 방법을 제공한다. 

 

routes 폴더를 만들고 index.js와 user.js 파일 생성하기 

 

index.js

const express = require('express');

const router = express.Router();

//GET / 라우터
router.get('/', (req, res) => {
    res.send('Hello, Express');
});

module.exports = router;

 

 

user.js

const express = require('express');

const router = express.Router();

//GET / 라우터
router.get('/', (req, res) => {
    res.send('Hello, User');
});

module.exports = router;

 

이제 app.use를 통해 app.js에 연결한다. 

또한 에러 처리 미들웨어 위에 404 상태 코드를 응답하는 미들웨어를 하나 추가한다. 

 

app.js

const indexRouter = require('/routes');
const userRouter = require('./reutes/user')

app.use('/', indexRouter);
app.use('/user', userRouter);

app.use((req,res,nex) => {
    res.status(404).send('Not Found');
})

indexRouter를 ./routes 로 require할 수 있는 이유는 Index.js 는 생략할 수 있다. 

 

indexRouter 는 use의 '/' 와 get의 '/' 가 합쳐져 GET / 라우터가 되었고,

userRouter 는 use의 '/user'와 get 의 '/'가 합쳐져 GET /user 라우터가 되었다. 

 

이렇게 app.use 로 연결할 때 주소가 합쳐진다.  

 

728x90