[node.js] ExpressJS의 req.query 및 req.param

간의 주요 차이점 req.queryreq.param익스프레스

  • 둘 다 어떻게 다릅니 까
  • 사용하는 경우 어떤 경우에

클라이언트가 요청에서 Android (Key, value) 쌍을 전송한다고 가정합니다. …….. 어떤 것을 사용할까요?

[편집하다]

안드로이드가 POST 요청을 보낸다고 가정하면-> 의도는 (Key, Value)를 클라이언트에 보내고 서버는 서버의 값을 기반으로 데이터베이스 쿼리를 수행하고 JSON 응답을 반환해야합니다.

봐 :: 내가 참조한 프로그램에 대한이 질문에서 : : 결과 쿼리를위한 Simple Express 프로그램



답변

req.query 쿼리 문자열이 구문 분석 된 후 JS 개체를 반환합니다.

? / 사용자 이름 = 톰 & 연령 = 55req.query얻을 것이다{name:"tom", age: "55"}

req.params일치하는 경로의 매개 변수를 반환합니다. 경로 인 경우 / 사용자 / : ID 및에 요청 만들기 / 사용자 / 5req.params얻을 것이다{id: "5"}

req.param요청에서 매개 변수를 제거하는 함수입니다. 이 모든 것은 여기 에서 찾을 수 있습니다 .

최신 정보

동사가 인 경우 POST와 사용하는 bodyParser, 당신은 당신이 함수의 형태로 몸을 얻을 수 있어야합니다 req.body. 그것은 POSTed 양식 의 구문 분석 된 JS 버전이 될 것 입니다.


답변

req.query서버로 전송 된 쿼리 문자열입니다 (예 : /page?test = 1 ) req.param는 핸들러에 전달 된 매개 변수입니다.

app.get('/user/:id', handler);, 가기 /user/blah , req.param.id반환 blah;


답변

다음을 사용하는 것이 좋습니다.

req.param('<param_name>')

req.param ( “”)은 다음과 같이 작동합니다.

조회는 다음 순서로 수행됩니다.

req.params
req.body
req.query

req.body, req.params 및 req.query에 대한 직접 액세스는 각 객체의 입력을 진정으로 받아들이지 않는 한 명확성을 위해 선호되어야합니다.

참조 : http://expressjs.com/4x/api.html#req.param


답변

매개 변수 전달

GET request to "/cars/honda"

Honda 자동차 모델 목록을 반환합니다.

쿼리 전달

GET request to "/car/honda?color=blue"

Honda 자동차 모델 목록을 반환하지만 스톡 색상이 파란색 인 모델 만 반환되도록 필터링됩니다.

이러한 필터를 URL 매개 변수 (/ car / honda / color / blue)에 추가하는 것은 의미가 없습니다. REST에 따르면 “파란색”색상에 대한 많은 정보를 얻고 자 함을 의미하기 때문입니다. 우리가 정말로 원하는 것은 Honda 모델의 필터링 된 목록이므로 쿼리 문자열을 사용하여 반환되는 결과를 필터링합니다.

쿼리 문자열은 실제로는 약간 다른 형식 (? key1 = value1 & key2 = value2 & key3 = value3)의 {키 : 값} 쌍입니다.


답변