[解決済み] Express アプリケーションで JSON POST データを消費する方法
2022-03-15 17:14:16
質問
次のようなJSON文字列をサーバーに送信しています。
(
{
id = 1;
name = foo;
},
{
id = 2;
name = bar;
}
)
サーバー上ではこんな感じです。
app.post('/', function(request, response) {
console.log("Got response: " + response.statusCode);
response.on('data', function(chunk) {
queryResponse+=chunk;
console.log('data');
});
response.on('end', function(){
console.log('end');
});
});
文字列を送信すると、200の応答があったことが表示されますが、そのほかの2つのメソッドは実行されることはありません。なぜでしょうか?
解決方法は?
の使い方を混同しているのではないでしょうか?
response
オブジェクトと
request
.
は
response
オブジェクトはクライアントに HTTP レスポンスを返すためのものであり、あなたがアクセスしたいのは
request
. これを見てください
答え
は、いくつかのガイダンスを提供しています。
有効なJSONを使用していて、そのJSONを
Content-Type: application/json
であれば
bodyParser
ミドルウェアはリクエストボディをパースし、その結果を
request.body
を作成します。
Express 4.16+ 用のアップデート
リリース4.16.0から、新しい
express.json()
ミドルウェアが利用可能です。
var express = require('express');
var app = express();
app.use(express.json());
app.post('/', function(request, response){
console.log(request.body); // your JSON
response.send(request.body); // echo the result back
});
app.listen(3000);
Express 4.0 - 4.15にアップデートされました。
ボディパーサーはv4以降、独立したnpmパッケージに分割されたため、別途インストールが必要です。
npm install body-parser
var express = require('express')
, bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.post('/', function(request, response){
console.log(request.body); // your JSON
response.send(request.body); // echo the result back
});
app.listen(3000);
Expressの以前のバージョン(< 4)の場合
var express = require('express')
, app = express.createServer();
app.use(express.bodyParser());
app.post('/', function(request, response){
console.log(request.body); // your JSON
response.send(request.body); // echo the result back
});
app.listen(3000);
に沿ってテストする。
$ curl -d '{"MyKey":"My Value"}' -H "Content-Type: application/json" http://127.0.0.1:3000/
{"MyKey":"My Value"}
関連
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] package.jsonの各依存関係を最新バージョンに更新する方法は?
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] JSONデータをファイルに書き込むにはどうしたらいいですか?
-
[解決済み] RESTful WebServiceにファイルや関連データをJSONで投稿する。
-
[解決済み] フェッチする JSONデータをPOSTする
-
[解決済み] nodeやExpressを使用してJSONを返す正しい方法
-
[解決済み】なぜPythonはこのJSONデータをパースできないのですか?[終了] PythonがこのJSONデータをパースできないのはなぜですか?
-
[解決済み] JSONファイルのMongoimport
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー:リクエストのエンティティが大きすぎる
-
[解決済み] JSONDecodeError: 期待される値:行1列1
-
[解決済み] バイナリデータをJSON文字列で。Base64より優れたもの
-
[解決済み] JSON命名規則(snake_case、camelCase、PascalCase) [終了しました。]
-
Gulpがデモ用ライティングウィジェットを作成
-
[解決済み】Express関数のパラメータ "res "と "req "とは?
-
[解決済み] JSONファイルのMongoimport
-
[解決済み] VS Codeで、"JSONではコメントが許可されていません "というエラーを無効にする。
-
[解決済み] VSCodeでlaunch.jsonに環境変数を追加する方法
-
[解決済み] CSV/XLSをJSONに変換する?[クローズド]