반응형
app.get 같은 메서드를 "라우터" 라고 합니다. app.js 에 라우터를 많이 연결하면 코드가 길어지고 복잡해지므로 라우터를 분리해보겠습니다!
routes 폴더를 만들고 그 안에 라우터를 분리하여 저장하겠습니다.
< routes/index.js >
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.send('Hello, Express');
});
module.exports = router;
< routes/user.js >
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.send('Hello, User');
});
module.exports = router;
분리한 라우터들을 app.js 에 연결하겠습니다.
// .. 생략
const indexRouter = require('./routes'); // = require('./routes/index')
const userRouter = require('./routes/user');
// .. 생략
app.use('/', indexRouter);
app.use('/user', userRouter);
require 메서드로 라우터가 저장된 경로를 지정해 라우터를 가져옵니다. 그 다음 app.use 를 통해 라우터를 연결합니다. 콘솔에서 node app.js 를 입력한 후 웹페이지에 접속하면 다음과 같은 화면을 볼 수 있습니다.
+ 라우터 관련 알아두면 좋은 것들!
1. 라우트 매개변수 패턴
다음 코드가 라우트 매개변수라고 불리는 패턴입니다! 주소를 보면 :id가 있는데 이 부분에 다른 값을 넣을 수 있습니다. 예를 들어 '/user/1', '/user/123' 입니다. 이 라우터는 일반 라우터보다 뒤에 위치해야한다는 것을 주의해주세요!!
router.get('/user/:id', function(req, res) {
console.log(req.params, req.query)
});
2. 같은 주소 다른 메서드
라우터가 같은 주소이지만 다른 메서드일 때 코드를 다음과 같이 간결하게 줄일 수 있습니다.
router.route('/user')
.get((req, res) =>
res.send('GET /user');
})
.post((req, res) =>
res.send('POST /user');
});
반응형
'Back-end > Node.js' 카테고리의 다른 글
[Node.js] 템플릿 엔진 사용하기 (Pug, Nunjucks) (0) | 2021.07.16 |
---|---|
[Node.js] req, res 객체의 여러가지 메서드 (0) | 2021.07.16 |
[Node.js] 미들웨어 (0) | 2021.07.13 |
[Node.js] Express 프로젝트 생성하기 (0) | 2021.07.11 |
[Node.js] 쿠키와 세션 (Cookie and Session) (0) | 2021.07.10 |