클라이언트의 요청에 어떻게 응답할 것인지 애플리케이션의 endpoint(URI)를 정의하는 것을 의미한다.
express
의 app
객체를 이용해서 정의할 수 있다.
필요한 것
예시
// GET method route
app.get('/', function (req, res) {
res.send('GET request to the homepage');
})
지원하는 메소드들은 문서 참조할 수 있다.
https://expressjs.com/en/4x/api.html#app.METHOD
하나의 함수 뿐만 아니라 여러개의 함수를 등록할 수 있다.
app.get('/user/test', function (req, res, next) {
console.log('next function ...')
next()
}, function (req, res) {
res.send('Hello User!')
})
Use app.route() to avoid duplicate route names (and thus typo errors)!
app.route('/events')
.all(function (req, res, next) {
// runs for all HTTP verbs first
// think of it as route specific middleware!
})
.get(function (req, res, next) {
res.json({})
})
.post(function (req, res, next) {
// maybe add a new event...
})
Router를 통해 모튤러하고 mountable 한 route handler를 작성할 수 있다.
MVC에서 controller의 역할과 같다고 볼 수 있는데, 서비스가 복잡해질 경우 라우터에서는 경로 지정의 역할만 하고 controller를 따로 구성하기도 한다고는 한다.
현재 진행중인 프로젝트에 적용을 한다면 라우터를 큰 카테고리로 몇개 나눌 수 있다.
그 중 다음주에 작업 예정인 user 관련 router를 작성한다면
users.js 파일에
router.get('/', function(req,res){
res.send(~~~)
})
router.post('/'~~~)
이런 식으로 코드 작성 후
app.js 에서 모듈을 로드하면 된다.
import users from { '/users' }
app.use('/users' , users)
이후 응용 프로그램은 URL/user에 대한 요청을 처리할 수 있다~~