🥇 Accesando el query string.

Express tiene un parser (analizador) del query string, a diferencia del modulo http que carece de el, y que forza a los desarrolladores a realizar dicho análisis manualmente. Debido a que dicho parsing es una característica de express, no hay necesidad de instalar paquetes adicionales con npm.

Por ejemplo, al realizar la consulta de los comentarios de un artículo y queremos restringir dicha consulta a solo 30 resultados, organizados por autor y fecha de publicación. El primer instinto que pudieramos tener es crear mas parámetros para la ruta como… “/articles/:articleId/comments/:authorId/:createdAt”. Sin embargo, que sucede cuando tenemos mayores requerimientos, como leer tambien los comentarios pero solo ordenados por fecha o solo aquellos a partir de determinada fecha.

En nuestro caso el unico requerimiento fijo es poder leer los comentarios de un artículo, los parámetros adicionales para restringir la consulta son variables. En este caso todos aquellos deben ser incluidos como parte del query string, de otra forma tendríamos que crear un número enorme en la cantidad de rutas.

/articles/:articleId/comments?authorId=####&createdAt=####

app.get('/search', (req, res) => {
    const articleId = req.params.articleId;
    const authorId = req.query.authorId;
    const createdAt = req.query.createdAt;
    const sql = `select * from comments where article_id = $articleId and author_id = $author_id and created_at <= $createdAr`;
    db.query(sql, (err, comments)){
        if(error) return res.status(500).send(error);
        return res.status(200).send(comments);
    }
});

Podemos construir dentro de la misma ruta condicionales para realizar una consulta en base a los argumentos provistos.

Accesando parametros del url. MongoDB.
comments powered by Disqus