[解決済み】Node.jsとExpressを使用してPOSTするときに、リクエストボディにアクセスするにはどうすればよいですか?
質問
以下のようなNode.jsのコードを持っています。
var express = require('express');
var app = express.createServer(express.logger());
app.use(express.bodyParser());
app.post('/', function(request, response) {
response.write(request.body.user);
response.end();
});
ここで、次のようなPOSTをすると。
curl -d user=Someone -H Accept:application/json --url http://localhost:5000
私は
Someone
は期待通りです。さて、リクエストの本文を完全に取得したい場合はどうすればよいでしょうか。試しに
response.write(request.body)
が、Node.js は " という例外を投げます。
第一引数は文字列またはバッファでなければなりません
という例外が発生し、quot;無限ループに陥ります。
送信後にヘッダーを設定することはできません。
を実行しても同様です。
var reqBody = request.body;
と書いてから
response.write(reqBody)
.
ここで何が問題なのか?
また
express.bodyParser()
?
解決方法は?
Express 4.0以上。
$ npm install --save body-parser
そして、あなたのnodeアプリで。
const bodyParser = require('body-parser');
app.use(bodyParser);
Express 3.0以下。
cURLの呼び出しにこれを渡してみてください。
--header "Content-Type: application/json"
で、データがJSON形式であることを確認します。
{"user":"someone"}
また、以下の例のように、node.jsのコード内でconsole.dirを使用すると、オブジェクト内のデータを確認することができます。
var express = require('express');
var app = express.createServer();
app.use(express.bodyParser());
app.post('/', function(req, res){
console.dir(req.body);
res.send("test");
});
app.listen(3000);
この他の質問も参考になるかもしれません。 express node.js の POST リクエストで JSON を受信する方法は?
もしbodyParserを使いたくないのであれば、この他の質問を参照してください。 https://stackoverflow.com/a/9920700/446681
関連
-
[解決済み】ES6マップオブジェクトをソートすることは可能ですか?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] コールバック内で正しい `this` にアクセスする方法
-
[解決済み] Node.jsを完全にアンインストールして、最初から再インストールする方法 (Mac OS X)
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み] Node.jsでディレクトリに存在するすべてのファイル名のリストを取得する方法は?
-
[解決済み] Node.jsで現在のスクリプトのパスを取得するにはどうしたらいいですか?
-
[解決済み] node.jsでHTTP POSTリクエストはどのように行われるのですか?
-
[解決済み] Expressで"? "の後にあるGETパラメータにアクセスするにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Heroku:ノードアプリで「このアプリにはデフォルトの言語が検出されませんでした」エラーがスローされる
-
[解決済み】React Js: Uncaught (in promise) SyntaxError: 位置 0 の JSON で予期しないトークン < が発生しました。
-
[解決済み】フォームコントロールの値アクセサがない
-
[解決済み】NodeJS "ESモジュールをロードするためにインポートを使用する必要があります。"
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み】コンソールがUnterminated JSX contentsエラーを投げる【終了しました
-
[解決済み】WebSocket接続に失敗しました。WebSocket のハンドシェイク中にエラーが発生しました。予期しない応答コードです。400
-
[解決済み】 Uncaught Reference Error: stLight is not defined (in Chrome only)
-
[解決済み】Javascript、[オブジェクトHTMLInputElement]を表示中。]
-
[解決済み] bodyParser は非推奨です express 4