Creo que estás combinando el uso del responseobjeto con el del request.
El responseobjetivo es enviar la respuesta HTTP al cliente que realiza la llamada, mientras que desea acceder al cuerpo del request. Ver esta respuesta que proporciona alguna orientación.
Si está utilizando un JSON válido y lo está PUBLICANDO Content-Type: application/json, puede usar el bodyParsermiddleware para analizar el cuerpo de la solicitud y colocar el resultado request.bodyde su ruta.
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);
Prueba a lo largo de las líneas de:
$ curl -d '{"MyKey":"My Value"}' -H "Content-Type: application/json" http://127.0.0.1:3000/
{"MyKey":"My Value"}
Actualizado para Express 4+
El analizador del cuerpo se dividió en su propio paquete npm después de la v4, requiere una instalación separada 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);
Actualización para Express 4.16+
A partir de la versión 4.16.0, express.json()hay disponible un nuevo middleware.
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);
request.body.MyKey