급행 경로에서 선택적 매개 변수 이름을 만드는 방법은 무엇입니까?

포도 나무

다음은 내 경로 코드입니다.

app.get('/server/lead/get/:id?', leadCtrl.get);
app.get('/server/lead/filter/:filterQuery', leadCtrl.get);

위에서 볼 수 있듯이 동일한 컨트롤러 방법에 액세스하기 위해 다른 경로를 사용하고 있습니다 leadCtrl.get.

이제 나는 route와 같은 것을 원합니다 app.get('/server/lead/get/:id?:filter?', leadCtrl.get);. 그래서, 나는 PARAMS 중 하나를 얻을 수 있습니다 req.params.id또는 req.params.filter그러나 한 번에 한합니다.

rsp

질문에서 질문 한 내용을 설명하는 형식으로는 불가능합니다.

이제 route app.get ( '/ server / lead / get / : id? : filter?', leadCtrl.get);과 같은 것을 원합니다. 따라서 req.params.id 또는 req.params.filter 매개 변수를 가져올 수 있지만 한 번에 하나씩 만 가져올 수 있습니다.

라우터는이 두 매개 변수를 구별 할 방법이 없습니다. 요청 /server/lead/get/X이 있으면 X는 무엇입니까? 필터 또는 ID?

귀하의 옵션

여기에 몇 가지 해결책이 있습니다.

  1. 이전처럼 두 가지 경로를 계속 사용할 수 있습니다.

  2. Robert가 주석에서 설명한대로 두 경우 모두에 공통 매개 변수를 사용할 수 있습니다.

  3. 또는 이름이 지정된 쿼리 매개 변수와 같은 사용 사례에 대한 완벽한 솔루션으로 보이는 것을 사용할 수 있습니다. 경로 /server/lead/get를 사용하고 쿼리 매개 변수를 사용하여 ID와 필터를 전달할 수 있습니다.

예제 URL :

  • /server/lead/get?id=xxx
  • /server/lead/get?filterQuery=xxx

핸들러에서 한 번에 두 가지 중 하나만 다음과 같이 설정되어 있는지 확인하면됩니다.

if (req.query.id && req.query.filterQuery) {
  // respond with error
}

app.get('/server/lead/get/:id?')경로 가있는 경우 두 가지를 혼합 할 수도 있습니다. 경로에 ID를 포함하고 쿼리 매개 변수로 filterQuery를 사용할 수 있습니다. 이제 URL은 다음과 같습니다.

  • /server/lead/get/xxx (ID 용)
  • /server/lead/get?filterQuery=xxx (필터 용)

자세한 내용은 http://expressjs.com/en/api.html#req.query를 참조하십시오.

더 좋은 방법

몇 가지 REST 규칙따르는 경우 다음을 사용할 수 있습니다.

  • app.get ( '/ 서버 / 납 / : ID')에 대한 하나의 ID (와 객체 되지 옵션)
  • 객체 목록대한 app.get ( '/ server / lead') (쿼리 매개 변수로 전달 된 선택적 filterQuery 포함)

이렇게하면 다음에 액세스 할 때 항상 알 수 있습니다.

  • /server/lead/xxx- 다음 그것의 하나의 ID와 객체 = XXX
  • /server/lead-다음 은 모든 개체 의 목록 입니다.
  • /server/lead?filterQuery=xxx- 쿼리와 일치하는 개체 목록 입니다.

자신의 것을 발명하는 대신 이와 같은 것에 대한 REST 규칙을 따르는 경우 경로와 핸들러를 설계하는 것이 훨씬 쉬울 것이고 다른 사람들이 시스템을 사용하는 것이 훨씬 더 쉬울 것입니다.

REST에서 일반적으로 사용 되는 대신 복수형 을 사용할 수도 있습니다 . 그렇게 하면 목록이고 그 요소 중 하나 인 것이 더 분명해질 것 입니다./server/leads/server/leadleadsleads/id

자세한 내용은 다음을 참조하십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이 경우 선택적 매개 변수에 액세스하는 방법은 무엇입니까?

분류에서Dev

`Func <>`의 일부 매개 변수를 선택적으로 만드는 방법은 무엇입니까?

분류에서Dev

TypeScript의 데코레이터에 선택적 매개 변수를 추가하는 방법은 무엇입니까?

분류에서Dev

Google Mock에서 선택적 매개 변수로 메서드를 모의하는 방법은 무엇입니까?

분류에서Dev

클래스를 선택적 매개 변수로 메서드에 전달하는 방법은 무엇입니까?

분류에서Dev

선택적 매개 변수로 TypeScript의 함수를 오버로드하는 방법은 무엇입니까?

분류에서Dev

개체 이름 값 쌍을 매개 변수로 메서드에 전달하는 방법은 무엇입니까?

분류에서Dev

메소드에 선택적 매개 변수가있을 때 호출되는 것은 무엇입니까?

분류에서Dev

동일한 메서드에서 호출 메서드의 이름을 매개 변수로 동적으로 전달하는 방법은 무엇입니까?

분류에서Dev

이전 매개 변수의 선택을 기반으로 SSRS의 매개 변수 값을 선택하는 방법은 무엇입니까?

분류에서Dev

함수의 선택적 반환 매개 변수에 힌트를 입력하는 방법은 무엇입니까?

분류에서Dev

보기에서 선택적 매개 변수에 액세스하는 방법은 무엇입니까? Laravel PHP

분류에서Dev

선택 사항이 아닌 한 주어진 매개 변수를 거부하는 Swift에서 일반 함수를 만드는 방법은 무엇입니까?

분류에서Dev

파이썬에서 배열을 함수 매개 변수로 선언하는 방법은 무엇입니까?

분류에서Dev

재귀 매크로에서 매개 변수 변수 값을 변경하는 방법은 무엇입니까?

분류에서Dev

Django에서 다중 선택적 URL 매개 변수를 전달하는 방법은 무엇입니까?

분류에서Dev

선택적 매개 변수에서 postgres를 쿼리하는 방법은 무엇입니까?

분류에서Dev

PowerShell에서 선택적 매개 변수를 전달하는 방법은 무엇입니까?

분류에서Dev

swagger php api 주석에서 선택적 매개 변수를 전달하는 방법은 무엇입니까?

분류에서Dev

OpenAPI 3.0에서 두 개의 선택적 매개 변수로 경로를 정의하는 방법은 무엇입니까?

분류에서Dev

선택적 매개 변수 만있는 함수에 대해 여러 오버로드를 정의하는 방법은 무엇입니까?

분류에서Dev

Lagom의 나머지 API 경로에서 요청 매개 변수를 선택 사항으로 만드는 방법은 무엇입니까?

분류에서Dev

매개 변수 배열을 함수 행렬에 브로드 캐스트하는 방법은 무엇입니까?

분류에서Dev

이전에로드 된 행 수만 사용하여 행을 선택하는 방법은 무엇입니까?

분류에서Dev

Bash 매개 변수 $ 1로이 awk 열 2 선택기를 확장하는 방법은 무엇입니까?

분류에서Dev

매개 변수에 따라 올바른 값을 선택하는 방법은 무엇입니까?

분류에서Dev

Delphi에서 메서드 매개 변수 이름 배열 / 목록을 얻는 방법은 무엇입니까?

분류에서Dev

함수 유형의 선택적 위치 매개 변수에 대한 기본값을 설정하는 방법은 무엇입니까?

분류에서Dev

SQL 쿼리에서 열 이름을 매개 변수로 설정하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    이 경우 선택적 매개 변수에 액세스하는 방법은 무엇입니까?

  2. 2

    `Func <>`의 일부 매개 변수를 선택적으로 만드는 방법은 무엇입니까?

  3. 3

    TypeScript의 데코레이터에 선택적 매개 변수를 추가하는 방법은 무엇입니까?

  4. 4

    Google Mock에서 선택적 매개 변수로 메서드를 모의하는 방법은 무엇입니까?

  5. 5

    클래스를 선택적 매개 변수로 메서드에 전달하는 방법은 무엇입니까?

  6. 6

    선택적 매개 변수로 TypeScript의 함수를 오버로드하는 방법은 무엇입니까?

  7. 7

    개체 이름 값 쌍을 매개 변수로 메서드에 전달하는 방법은 무엇입니까?

  8. 8

    메소드에 선택적 매개 변수가있을 때 호출되는 것은 무엇입니까?

  9. 9

    동일한 메서드에서 호출 메서드의 이름을 매개 변수로 동적으로 전달하는 방법은 무엇입니까?

  10. 10

    이전 매개 변수의 선택을 기반으로 SSRS의 매개 변수 값을 선택하는 방법은 무엇입니까?

  11. 11

    함수의 선택적 반환 매개 변수에 힌트를 입력하는 방법은 무엇입니까?

  12. 12

    보기에서 선택적 매개 변수에 액세스하는 방법은 무엇입니까? Laravel PHP

  13. 13

    선택 사항이 아닌 한 주어진 매개 변수를 거부하는 Swift에서 일반 함수를 만드는 방법은 무엇입니까?

  14. 14

    파이썬에서 배열을 함수 매개 변수로 선언하는 방법은 무엇입니까?

  15. 15

    재귀 매크로에서 매개 변수 변수 값을 변경하는 방법은 무엇입니까?

  16. 16

    Django에서 다중 선택적 URL 매개 변수를 전달하는 방법은 무엇입니까?

  17. 17

    선택적 매개 변수에서 postgres를 쿼리하는 방법은 무엇입니까?

  18. 18

    PowerShell에서 선택적 매개 변수를 전달하는 방법은 무엇입니까?

  19. 19

    swagger php api 주석에서 선택적 매개 변수를 전달하는 방법은 무엇입니까?

  20. 20

    OpenAPI 3.0에서 두 개의 선택적 매개 변수로 경로를 정의하는 방법은 무엇입니까?

  21. 21

    선택적 매개 변수 만있는 함수에 대해 여러 오버로드를 정의하는 방법은 무엇입니까?

  22. 22

    Lagom의 나머지 API 경로에서 요청 매개 변수를 선택 사항으로 만드는 방법은 무엇입니까?

  23. 23

    매개 변수 배열을 함수 행렬에 브로드 캐스트하는 방법은 무엇입니까?

  24. 24

    이전에로드 된 행 수만 사용하여 행을 선택하는 방법은 무엇입니까?

  25. 25

    Bash 매개 변수 $ 1로이 awk 열 2 선택기를 확장하는 방법은 무엇입니까?

  26. 26

    매개 변수에 따라 올바른 값을 선택하는 방법은 무엇입니까?

  27. 27

    Delphi에서 메서드 매개 변수 이름 배열 / 목록을 얻는 방법은 무엇입니까?

  28. 28

    함수 유형의 선택적 위치 매개 변수에 대한 기본값을 설정하는 방법은 무엇입니까?

  29. 29

    SQL 쿼리에서 열 이름을 매개 변수로 설정하는 방법은 무엇입니까?

뜨겁다태그

보관