Route란? |
특수한 요청을 그에 알맞은 응답 프로세스로 연결시키는 것.
구체적으로는 다음과 같은 과정이다.
- 웹 서버에 요청이 전달된다. (GET or POST)
- 어떤 경로에서 발생된 요청인지 파악한다.
- 해당 경로를 처리하는 프로세스를 호출한다.
Router 미들웨어 |
익스프레스는 라우트 과정을 간편하고 가볍게 하기 위해
다음과 같이 Router 미들웨어 객체를 지원한다.
let express = require('express');
let router = express.Router();
미들웨어 객체를 생성한 뒤,
요청패스와 콜백을 라우터에 등록한다.
router.route(요청패스).get(실행될함수); // GET 방식으로 요청시
router.route(요청패스).post(실행될함수); // POST 방식으로 요청시
router.route(요청패스).all(실행될함수); // 모든 요청시
모든 요청패스와 콜백을 등록한 뒤,
익스프레스에 미들웨어로써 등록한다.
let app = express();
app.use('/', router);
URL 파라미터 |
URL 경로의 일부분을 파라미터로써 사용할 수 있다.
router.route('/process/login/:userName') ...
위 처럼 라우터에 등록하고 /process/login/aerolabs 처럼 요청하면,
:userName에 대응하는 부분(위에서는 aerolabs)가 req.params의 멤버로써 저장된다.
즉, 다음과 같이 요약된다.
router.route('/process/login/:userName) ...
/process/login/aerolabs
req.params.userName == aerolabs
오류 페이지 |
등록되지 않은 경로에 대한 요청을 직접 처리하려면
맨 하단에 애스터리스크 경로로 라우터에 등록한다.
router.all('*', (req, res)=>
{
res.status(404).send('<h1>페이지를 찾을 수 없습니다.</h1>');
});
미들웨어는 등록된 순서대로 요청을 처리하기 때문에,
반드시 최하단에 등록해야 한다.
'# 미사용' 카테고리의 다른 글
파일 업로드하기 (0) | 2018.02.26 |
---|---|
쿠키 세션 다루기 (0) | 2018.02.25 |
익스프레스 알아보기 (0) | 2018.02.23 |
Chrome Headless Driver (0) | 2018.02.12 |
웹서버 시작하기 (0) | 2018.02.12 |