반응형
express.Router 클래스를 이용해 모듈러(modular)와 마운트 가능한 핸들러(handler)를 생성할 수 있다. 이를 통해 공통된, 반복된 작업량을 줄일 수 있다.
아래 코드는 애플리케이션의 엔트리 포인트(entry-point)인 main.js 클래스에 Welcome 메시지를 로드하는 indexRouter라는 미들웨어 모듈을 마운트하는 내용이다.
/routes/index.js
var express = require('express');
var router = express.Router();
var template = require('../lib/template.js');
router.get('/', (request, response) => {
var title = 'Welcome';
var description = 'Hello, Charlie';
var html = template.html(`<h2>${title}</h2>${description});
response.send(html);
});
module.exports = router;
- var router = express.Router(); 통해 클래스 생성 후 '[클래스 생성 변수].[요청 메소드]'를 통해 미들웨어를 정의한다.
- module.exports = router; : 정의된 미들웨어 모듈을 사용하려면 반드시 module.exports = [모듈 이름]을 통해 외부 사용에 대한 설정이 필요하다.
main.js
var indexRouter = require('./routes/index.js');
app.use('/', indexRouter);
- var indexRouter = require('./routes/index.js'); : 엔트리 포인트에 미들웨어 모듈을 사용하려면 우선 해당 미들웨어의 위치를 로드해야 한다.
- app.use('/', indexRouter); : use()는 미들웨어 함수를 마운트하는 메소드. app(경로, 콜백함수) 형태로 작성한다.
참고
https://expressjs.com/ko/guide/routing.html
https://videlais.com/2019/12/29/learning-express-routers-part-2-planning-classes-as-routes/
반응형
'Programming > Node.js' 카테고리의 다른 글
[Node.js][Express] 기본 라우팅 (0) | 2021.09.02 |
---|---|
[Node.js] PM2 활용 (0) | 2021.09.01 |
[Node.js][보안] sanitize-html 사용 (0) | 2021.09.01 |
[Node.js] 작업 환경 구성 및 서버 실행 (0) | 2021.07.29 |