response
オブジェクトの使用と。の使用を混同していると思いますrequest
。
response
オブジェクトは、HTTP応答を呼び出し元のクライアントに送り返すためのものですが、の本文にアクセスする必要がありますrequest
。いくつかのガイダンスを提供するこの回答を参照してください。
有効なJSONを使用していてContent-Type: application/json
、それをでPOSTしている場合は、ミドルウェアを使用しbodyParser
てリクエストの本文を解析し、結果をrequest.body
ルートに配置できます。
Express4.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);
Express4.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"}