驴Qu茅 es body-parser y para qu茅 se utiliza?
Body-parser es una librer铆a de Node.js que se utiliza con Express para analizar y procesar los datos de solicitudes HTTP, como JSON o datos de formulario. Permite acceder a los datos del cuerpo de la solicitud en un formato f谩cilmente utilizable en una aplicaci贸n Node.js.
Usualmente el cuerpo de una petici贸n (payload), contiene informaci贸n desde una petici贸n tipo POST cuando un cliente desea crear una nueva entidad/registro o actualizar uno existente mediante PUT. Los desarrolladores quienes implementan servidores, requieren frecuentemente acceder a la informaci贸n del cuerpo de dicha petici贸n.
El m贸dulo npm body-parser permite realizar esta tarea. No es necesario programarla. Solo se requiere instalar body-parser y habilitar json() as铆 como url-encode como middlewares para convertir datos a JSON.
驴C贸mo instalar body-parser usando npm?
Para instalar body-parser en tu proyecto de Node.js, debes seguir los siguientes pasos:
- Abre una terminal y navega hasta la carpeta ra铆z de tu proyecto.
- Ejecuta el siguiente comando:
$ npm install body-parser
- Una vez que la instalaci贸n se complete, body-parser estar谩 listo para ser utilizado en tu proyecto.
Ten en cuenta que tambi茅n debes tener instalado Node.js y npm en tu sistema antes de poder instalar body-parser.
驴C贸mo instalar body-parser en mi proyecto de Node.js?
Despu茅s de instalar bodyparser dentro de tu proyecto, deber谩s importar el paquete en express y aplicarla como middleware.
const express = require("express");
const app = express();
const bodyParser = require("body-parser");
app.use(bodyParser.json());
app.post("/", (req, res) => {
console.log(req.body);
res.send("Data received");
});
Arranca tu servidor y ahora podr谩s enviar datos mediante curl para hacer debug.
$ curl -d '{"name:"Luis"}' http://localhost:3000 -i -H "Content-Type:application/json"
驴C贸mo utilizar urlencoded en bodyparser?
En algunas ocasiones no requerimos utilizar json para enviar datos sino una variante como application/x-www-form-urlencoded. Este es especialmente 煤til en formularios HTML.
app.use(bodyParser.urlencoded({ extended: false }));
Extended false utiliza la librer铆a
querystring
mientras que true la librer铆aqs
. La sintaxis deextended:true
permite el uso de otras caracter铆sticas como rich objects y arreglos codificados dentro del formatoURL-encoded
.