web-dev-qa-db-ja.com

Express / nodeをテストする方法REST高度なAPIバックエンドRESTクライアントまたはPostmanですか?

Advanced RESTクライアントまたはPostman for ChromeでJSONを受け入れるREST APIバックエンドをテストする必要があります。

しかし、私は問題に遭遇しています:組み込みフォームとContent-Typeを使用してのみリクエストを送信できます:application/x-www-form-urlencoded

ただし、ドキュメントを埋め込んでいるため、これは機能しません。たとえばPOSTする必要があります

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

これは、いずれかのChrome拡張機能の組み込み形式では不可能です。

Raw Bodyを選択してそこにコンテンツを挿入すると、バックエンドでreq.bodyが空のオブジェクトとして認識されます。ヘッダー「Content-Type:application/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()を使用しています。それらを無効にすることは助けにはなりませんでした。

Raw bodyフィールドにJSONを入力してリクエストが機能するようにするには、どの設定を使用する必要がありますか?

答えを明確にするために:Content-Type:application/json(リクエストヘッダーで)を設定し、適切な形式のjsonを使用する必要がありました。

21
ragulka

フィールドのプロパティを引用符で囲んでみてください:{"title": "Awesome post!"、 "tags":["blue"、 "jeans"]}

27
awl