Query String en Node.js: Parseo de URL y manejo de parámetros

Query String en Node.js: Parseo de URL y manejo de parámetros

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);
});

VPN

  • Ir a la oferta de NordVPN

Moda

Accesorios