2013-11-21 2 views
1

나는 Express와 함께 작업하면서 req.params로 실행되는 이상한 점이 있습니다. 하위 속성을 호출 할 때 제대로 작동합니다 (예 : res.json (req.params.paramName); 나에게 원하는 paramName 값을 준다. 하지만 res.json (req.params)을 통해 전체 res.params 객체를 클라이언트에 전달하려고하면 예상했던 JSON 객체 대신 브라우저에 빈 배열 []이 생깁니다. (res.send이 같은 결과를 제공합니다.)Express 'req.params의 형식은 무엇입니까?

, 내가 콘솔에 req.params 덤프 조금 더 깊은 상대 :

console.dir(req.params); 

를이있어 :

[ creator: '1', timeStart: '2', timeEnd: '3', dateDensity: '4' ] 

wut를? Javascript에서도 구문 적으로 가능합니까? req.params가 빠른 코드와 문서 같은 간단한 개체가 표시됩니다 경우에, 나는 점점해야합니다

{ creator: '1', timeStart: '2', timeEnd: '3', dateDensity: '4' } 

심지어 가능, 그것을해야한다 위에 얻고 무엇을 같은 배열?

나는 몇몇 검사를했고,뿐만 아니라 콘솔에 테스트 개체의 커플을 통과 :

console.dir([{foo:1}, {arr:2}, {gog:3}, {blah:4}]); 
console.dir({foo:1, arr:2, gog:3, blah:4}); 

를 콘솔 덤프 나 제공 :

[ { foo: 1 }, { arr: 2 }, { gog: 3 }, { blah: 4 } ] 
{ foo: 1, arr: 2, gog: 3, blah: 4 } 

그래서 console.dir 확인하고있다 . 내 익스프레스 코드로

res.json({foo:1, arr:2, gog:3, blah:4}); 

브라우저는 충실하게 나에게 제공합니다 :

마지막으로, 나는를 하드 코딩 여기

{ 
    "foo": 1, 
    "arr": 2, 
    "gog": 3, 
    "blah": 4 
} 

내가 담배 건가요 균열? req.params는 어떻게됩니까?

답변

2

는 문자열 키 V8 밖으로 인쇄 배열이 방법은 그 :

var myArr = []; 
myArr.key = "oops"; 

가 기억 [] instanceof Object는 사실이다.

req.params은 배열이며 위치 매개 변수의 가능성을 제안합니다.

+0

좋아요, req.params는 배열로 정의되어 있지만 실제 매개 변수는 표준 객체 속성을 통해 저장됩니다. 맞습니까? – DanHeidel

+0

나는 위치 매개 변수에 대해 약간 혼란 스럽다. 나는 JS params가 기본적으로 positonally 전달 된 줄 알았는데. – DanHeidel

+0

Js 함수 매개 변수가 요청 매개 변수를 표현하기 위해 연결되어 있지 않음 – Eric

관련 문제