0

Express 4.0+を使用していますが、これが私のコードです

var express = require('express');
app = express();
var bodyParser = require('body-parser');

app.use(express.static(__dirname + '/public'));
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json());

app.listen(SERVER_LISTEN_PORT_TWO);

app.use(function (req, res, next) {
  console.log(req.body);
});

フロントエンド側では、以下を送信しています:

JSON.stringify( {"テスト":"メッセージ"} );

バックエンド側に出力される req.body データは次のとおりです。

{
  {"test":"message"} : ''
}

事前にnodejsのcreateServer関数だけを使用していたので、リクエストデータは

{"test":"message"}

私の質問は、Express は自動的に着信データを json エンコード/文字列化しますか (そのように見えます)、どうすればそれを無効にできますか? フロントエンドから送信するデータをエンコードできないことはわかっていますが、なぜそれを変更する必要があるのか​​ わかりません。

4

1 に答える 1

0

Content-Typeリクエストで正しいものを送信していません。JSON ペイロードを送信する場合、 は であるContent-Type必要がありapplication/json、 ではありませんapplication/x-www-form-urlencoded

于 2014-11-06T05:28:46.870 に答える