이전 포스트로 선수 지식입니다.
Router를 사용한 요청 라우팅
router를 사용하면 사용자 요청 패스(url 주소)에 따른 미들웨어 등록할 수 있습니다.
express의 라우터 객체를 만들고, 요청 패스에 따라서 적용할 미들웨어 함수를 정의해 줍니다.
GET 방식으로 요청을 할것이기 때문에 router.get() 함수를 이용해 줍니다.
router 객체를 정의해준다음에 미들웨어로 등록을 해야되는데요 , app.use()를 통해서 라우터 객체와 그 객체를 실행시킬 요청 패스를 작성해줍니다.
(기본값 => / )
app.set('port' , process.env.PORT || 8080);
app.set('host' , '127.0.0.1');
var router = express.Router();
router.route('/').get(function(req,res){
res.redirect('/source/jquery.html');
});
router.route('/routetest').get(function(req,res){
res.redirect('http://google.co.kr');
});
app.use('/',router);
위와 같이 작성하고 node app.js 라고 터미널에 작성하면 서버를 구동할 수 있습니다.
127.0.0.1:8080 으로 url을 입력하면 jquery html파일이 브라우저에 뜨고,
127.0.0.1:8080/routetest 으로 입력하면 구글 창으로 이동합니다.
요청 패스에 따라서 라우터를 분리하기
cgv 같은 기업이 있고 , 영화 사업과 팝콘 사업은 한다고 해봅시다.
그러면 홈페이지 , 영화 사이트 , store 사이트가 분리되어 있어야 겠죠?
이것을 라우터를 이용해서 분리해서 작성할 수 있습니다.
mainRouter는 홈페이지니까 / 패스에대해 실행하도록 하고
movieRouter는 영화 사이트니까 /movie 에 대해 패스를 설정하고
storeRouter 도 같은 방법으로 설정해줍니다.
var mainRouter = express.Router();
mainRouter.route('/').get(function(req,res){
res.send('<h1>this is main Page</h1>');
});
mainRouter.route('/routetest').get(function(req,res){
res.send('<h1>testing Main Page!!!</h1>');
});
app.use('/',mainRouter);
var movieRouter = express.Router();
movieRouter.route('/').get(function(req,res){
res.send("<h1>This is movie route</h1>")
});
movieRouter.route('/routetest').get(function(req,res){
res.send('<h1>testing Movie Page!!!</h1>');
});
app.use('/movie',movieRouter);
var storeRouter = express.Router();
storeRouter.route('/').get(function(req,res){
res.send("<h1>This is popcorn store route!!</h1>")
});
storeRouter.route('/buy').get(function(req,res){
res.send('<h1>popcorn is on sale ~!!!</h1>');
});
app.use('/store',storeRouter);
실행 결과
Router 객체 주요 메소드
- get(funtion) : GET 방식으로 특정 경로 요청이 발생했을때 , 콜백 함수 지정
- post(funtion) : POST 방식으로 특정 경로 요청이 발생했을때 , 콜백 함수 지정
- put(funtion) : PUT 방식으로 특정 경로 요청이 발생했을때 , 콜백 함수 지정
- delete(funtion) : DELETE 방식으로 특정 경로 요청이 발생했을때 , 콜백 함수 지정
- all(funtion) : 모든 요청 방식에 대해서 특정 경로 요청이 발생했을때 , 콜백 함수 지정
등록되지 않은 요청 패스일 경유 오류 페이지 표시
app.all('*', function(req, res) {
res.status(404).send('<h1>ERROR - 페이지를 찾을 수 없습니다.</h1>');
});
반응형
'Back-End > 🌿Express (nodeJS)' 카테고리의 다른 글
[Express] Passport 모듈로 로그인 구현하기(1) - local (0) | 2022.11.11 |
---|---|
[Express] Sequelize로 MySQL 연결하기 (2) - CRUD 작업 (0) | 2022.11.08 |
[Express] Sequelize로 MySQL 연결하기 (1) - 테이블 생성하기 (0) | 2022.11.06 |
[Express] multer를 이용해서 백엔드 이미지 업로드 (0) | 2022.11.06 |
[Express] Node.js , express 설치하기 , 웹서버(백엔드) 구축 , 미들웨어 (0) | 2022.06.10 |
댓글