2012-07-27 2 views
21

고급 REST 클라이언트 또는 Postman for Chrome에서 JSON을 허용하는 REST API 백엔드를 테스트해야합니다.Advanced REST Client 또는 Postman을 사용하여 Express/Node REST API 백엔드를 테스트하는 방법은 무엇입니까?

는하지만이 문제로 실행하고 있습니다 : 만 사용하여 요청을 보낼 수 있습니다 내장 된 형태와 콘텐츠 형식을 사용하여 : 응용 프로그램/

을 X-WWW-형태-urlencoded를하지만이 있기 때문에이 작동하지 않습니다

{title:"Awesome post!", tags: ["blue", "jeans"] } 

이 중 크롬 확장 프로그램에 내장 된 형태의 수 없습니다 : 임베디드 documennts 예를 들어, 나는이는 POST해야합니다.

원시 본문을 선택하고 거기에 내용을 삽입하면 백엔드가 req.body를 빈 객체로 간주합니다. 나는 또한 헤더 "콘텐츠 형식 : 응용 프로그램/JSON"을 설정하면, 내 백엔드에 다음과 같은 오류가 발생합니다 :

SyntaxError: Unexpected token n 
at Object.parse (native) 
at IncomingMessage.exports.parse.application/json (/Library/WebServer/Documents/slipfeed/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:135:16) 
at IncomingMessage.EventEmitter.emit (events.js:85:17) 
at IncomingMessage._emitEnd (http.js:366:10) 
at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23) 
at Socket.socket.ondata (http.js:1682:22) 
at TCP.onread (net.js:404:27) 

참고 : 내 응용 프로그램의 구성에 bodyParser()와 methodOverride()를 사용하고 있습니다. 사용하지 않으면 도움이되지 않습니다.

원시 바디 필드에 JSON을 입력하기 만하면 요청이 작동 할 수 있도록하기 위해 어떤 설정을 사용해야합니까?

대답을 명확히하기 위해 : Content-Type : application/json (요청 헤더에 있음)을 설정하고 속성 이름이 큰 따옴표 안에있는 올바른 형식의 json을 사용하여 작동시켜야했습니다.

답변

27

따옴표로 필드 속성을 둘러싸보십시오 : { "제목을": "굉장 게시물을!", "태그": [ "블루", "청바지"]}

+1

내가했는데, 내가 오류가 발생하지 않습니다 ,하지만 req.body는 비어 있습니다. – ragulka

+1

Actuall,이 트릭을하는 것 같습니다. 나는 Content-Type : application/json을 헤더에서 제거했다. 그것은 지금, 빛을 발한다 :) – ragulka

+0

@ragulka : 어떻게 그랬는지 말해 줄 수 있니? 헤더를 추가했지만 여전히 오류가 발생합니다. 또한, "application/x-www-form-urlencoded"로 보내면 두 개의 content-type 헤더가 설정됩니다. – Razort4x