2015-01-04 3 views
0

노드, Express & 몽구스를 사용하여 서비스를 구축했습니다. 현재 템플릿을 프런트 엔드에 렌더링하지만이 기능을 전체 API로 확장하려고합니다.ExpressJS에서 동일한 경로 기능을위한 다중 경로

API 콘텐츠를 반환하거나보기를 렌더링하고 HTML로 응답하도록 서버에 알리는 플래그와 함께 반환되는 각 유형의 리소스에 대해 단일 경로를 사용하고 싶습니다. 경로 api가 존재하고있는 경우

  • /users/:userId
  • /api/users/:userId

모두 다음 체크하는 것과 같은 기능 (즉 users.getOne)를 사용하는 것이 다음과 같이 이러한

예 것 그에 따라 올바른 응답을 보냅니다.

app.get('/users/:userId', users.getOne); 
app.get('/api/users/:userId', users.getOne); 

을 나는 오히려 각 자원에 대해 정의 된 두 경로가없는 것하지만, 응답 처리기에서 확인하십시오

나는 분명히 바로 다음 작업을 수행 할 수있다.

+1

당신이 모두 추가 간단한 파견 기능을 만들 수 있습니다; 하나는 "/ api"가 경로 앞에 추가 된 다음 addGet ("/ users/: userId", users.getOne)과 같이 호출하십시오. 이벤트가 다른 멋진 일을 할 수도 있고, 한 경로 또는 다른 경로를 사용하지 않도록 설정할 플래그를 허용 할 수도 있습니다. 그것은 당신의 전반적인 프로그램의 청결을 떨어 뜨리는 데 도움이 될 수 있습니다 ... – dandavis

답변

4

경로 경로에 경로 패턴이나 정규 표현식을 사용할 수 있습니다. 같을 것이다 경로 패턴을 경로를 사용

:

app.get('(/api)?/users/:userId', users.getOne);