Express 라우팅

lin·2022년 8월 8일
0

Routing

클라이언트의 요청에 어떻게 응답할 것인지 애플리케이션의 endpoint(URI)를 정의하는 것을 의미한다.
expressapp 객체를 이용해서 정의할 수 있다.

필요한 것

  • HTTP method0 : GET, POST, PUT, DELETE 등
  • EndPoint(URI) : /users
  • Callback(action) : 서버에서 할 동작

예시

// GET method route
app.get('/', function (req, res) {
	res.send('GET request to the homepage');
})

지원하는 메소드들은 문서 참조할 수 있다.
https://expressjs.com/en/4x/api.html#app.METHOD


  • URI endpoint
    문자열이나 정규표현식이 될 수 있다.

Route handlers

하나의 함수 뿐만 아니라 여러개의 함수를 등록할 수 있다.

app.get('/user/test', function (req, res, next) {
  console.log('next function ...')
  next()
}, function (req, res) {
  res.send('Hello User!')
})

app.route(path)

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...
  })

express.Router

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에 대한 요청을 처리할 수 있다~~

참고 자료::
https://expressjs.com/ko/guide/routing.html

profile
BE

0개의 댓글