ExpressJS의 req.query 및 req.param


89

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

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

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

[편집하다]

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

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


1
당신은 의미합니까 req.queryreq.param?
arb arb 2013-08-30

1
예 ! ......... 나는 또한 질문을 수정 한

답변:


115

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

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

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

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

최신 정보

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


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

문제의 요청을 보지 않고는이 질문에 답할 방법이 없습니다.
arb arb

업데이트 된 질문을보십시오. ..... 또한 제가 게시 한 질문 중 하나에서 익스프레스에서 사용중인 프로그램에 대한 링크를 언급했습니다. 피드백을 추가하십시오!

이 답변이 도움이 되었으면이 질문에 대한 답변으로 표시해주세요. 감사.
arb

15

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

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


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

1
나는 당신이 무엇에 대해 말하고 있는지 전혀 모르겠습니다. POST 요청 req.data이라면, GET t에있을 것입니다req.param
OneOfOne 2013-08-30

안녕하세요, undefined에 대해 req.params를 확인하는 방법을 알려주세요.
Arj 1411

그냥 비어있을 것 @AnandRaj, 그래서 확인c.Param("id") == ""
OneOfOne

@OneOfOne, 회신 해 주셔서 감사합니다. 확인하고 업데이트하겠습니다
Arj 1411

14

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

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


1
안녕하세요, undefined에 대해 req.params를 확인하는 방법을 알려주세요.
Arj 1411

@AnandRaj 정의되지 않은 것은 무엇을 의미합니까? 매개 변수가 알려지지 않았다는 뜻입니까?
Abhijit Gaikwad

내가 의미하는 바는 req.params 유형을 확인할 때 undefined 표시됩니다. 내 목표는 req.params. <any URI parameter>가 null인지 여부를 확인하는 것입니다
Arj 1411

@AnandRaj 코드를 게시 해 주시겠습니까? 다음 코드는 나를 위해 작동합니다. var express = require ( 'express'); var app = express (); app.get ( '/', function (req, res) {console.log (req.params); res.send (req.params);}); app.listen (3000);
Abhijit Gaikwad

@AnandRaj try if (reqParams.hasOwnProperty ( 'deviceType')) {}
Abhijit Gaikwad

9

매개 변수 전달

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)의 {키 : 값} 쌍입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.