2014-12-29 4 views
0

나는 익스프레스, 앵글 및 몽구스를 사용하여 웹 응용 프로그램을 작성하는 법을 배우고 있습니다.요청 매개 변수가 잘리지 않음

내 각 컨트롤러가 URL "/contact/54a153243aac91fc28605b0b"을 전달합니다. 마지막 비트는 내 mongo 데이터베이스의 레코드의 _id입니다. 유효 URL이 "/api/contact/54a153243aac91fc28605b0b는"

I는 서버 측에서 매개 변수를 액세스하고

, 나는 REQ으로 "54a153243aac91fc28605b0b"을 얻을 것으로 기대 있도록 서버 측에서

, 나는,/API를 사용하여 URL을 앞에 추가 .param.id,하지만 저는 "54"를 얻고 있습니다.

흥미롭게도 브라우저의 주소 표시 줄에 다음을 입력하면 전체 ID를 가져올 수 있습니다. 나는. 입력 한 경우 "http://localhost:3000/api/contact/54a153243aac91fc28605b0b"이 경우 예상되는 JSON 응답을 받고 또한.

저는 이것을 디버그하는 데 어려움을 겪고 있습니다. 어떤 힌트. 도와주세요.

+2

URL을 어떻게 prepend합니까? –

+0

모든 매개 변수를 출력 할 수 있습니까? 또한, 어떤 데이터를 보내고 있는지 콘솔에서 확인하십시오. – SoluableNonagon

+0

@VsevolodGoloviznin URL을 'app.use ('/ api ', api)'앞에 붙입니다. ' – KMalur

답변

0

명시 적으로 app.use 메서드는 URL 앞에 아무 것도 추가하지 않습니다. 적절한 URL에 대해 미들웨어를 적용하는 데 사용됩니다.

따라서 app.use('/api',api) 사용자는 /api으로 시작하는 URL로 항상 액세스해야합니다.

그래서 각도 코드가 예상대로 작동하지 않는 것입니다. 그 안에 /api 부분을 포함하는 전체 URL을 가져야합니다.

+0

고마워요! 내가 잘못하려고 시도하고 볼 것입니다. 그러나 req.originalUrl는 기록 다음 /API/연락처/(54) 대신 /API/연락처/54a153243aac91fc28605b0b 그래서, 나는 URL의 권리를 얻을 수 있었다, 그러나 매개 변수가 잘립니다. HEx 대신 Decimal을 전달하려고 시도했으며 링크가 작동 중입니다. 디버깅 중이며 업데이트됩니다. – KMalur

0

왜 param이 잘리는 지 알게되었습니다. 내 코드의 특정 위치에서 'parseInt ($ routeParams.id, 10)'을 수행하여 16 진수 ID가 10 진수로 잘 리게 만들었습니다.

지원해 주셔서 감사합니다.

~ 키샨

관련 문제