Petición GET
Cuando el navegador realiza una petición Get, esta petición luce algo así…
GET /?nombre=Josue&apellido=Pier
Host: www.dominio-de-la-app.com
Cookie: usuario=josue;departamento=ventas
Petición POST
Cuando realizamos una petición mediante Post, esta petición luce algo así…
POST
Host: www.dominio-de-la-app.com
Content-Type: application/x-www-form-urlencoded
Cookie: usuario=josue;departamento=ventas
nombre=Josue&apellido=Pier
GET a diferencia de POST mantiene el query string nombre=Josue&apellido=Pier
visible, pues forma parte del url.
Petición JSON
Cuando realizamos una petición que contiene una estructura JSON, esta forma parte del cuerpo del mensaje (body).
POST/HTTP/1.1
Host:www.dominio-de-la-app.com
Content-Type: application/json
Cookie: usuario=josue;departamento=ventas
{
"username": "josedoc",
"password": "nostruba"
}
¿Cómo obtener valores enviados mediante una petición en express?
En cada uno de estos casos necesitamos un middleware, que pueda extraer el contenido de los datos.
Obtener variables GET en express
// Retraer parámetro del query string (en este caso tenemos que
// proporcionar en el url el query string con el valor de cat)
// /?cat=nombreCategoria
app.get("/matricula/:id", function (peticion, respuesta) {
respuesta.render("matricula.ejs", {
id: peticion.params.id,
cat: peticion.query.cat,
});
});
Obtener variables POST en express
Cuando deseamos parsear el body, requerimos un nuevo middleware que pueda realizar ese trabajo. Instalador body-parser.
$ npm install body-parser --save
Una vez instalado podemos hacer uso de el como módulo.
// iniciar bodyparser para variables post
var urlencodedParser = bodyParser.urlencoded({
extended: false,
});
// ruta para crear una nueva matricula mediante post
app.post("/matriculaPost", urlencodedParser, function (peticion, respuesta) {
respuesta.send("Recibido!");
console.log(peticion.body.nombre);
console.log(peticion.body.matricula);
});
Los valores retraídos de variables post, se imprimirán en la consola de node o nodemon.
Para realizar pruebas enviando datos de las distintas formas, se puede hacer uso de herramientas como POSTMAN.
Obtener variables de una petición JSON
Al igual que las variables post, las variables json se pueden obtener utilizando body-parser.
// iniciar body parser para variables json
var jsonParser = bodyParser.json();
// ruta para crear una nueva matricula mediante json
app.post("/matriculaJson", jsonParser, function (peticion, respuesta) {
respuesta.send("Recibido!");
console.log(peticion.body.nombre);
console.log(peticion.body.matricula);
});