Volver a la página principal
viernes 20 septiembre 2024
11

Cómo utilizar Querymen en Node.js

Querymen es un middleware que facilita la gestión de consultas (queries) en las rutas de una API en Node.js, particularmente cuando trabajas con bases de datos como MongoDB. Permite validar, filtrar y paginar fácilmente las consultas HTTP, simplificando el manejo de parámetros en endpoints RESTful.

Instalación de Querymen en Node.js

Para utilizar Querymen en tu proyecto, primero debes instalarlo:

npm install querymen

Configuración básica de Querymen

Querymen se integra directamente en las rutas de Express, permitiendo definir reglas para los parámetros que esperas recibir en las consultas. Aquí un ejemplo básico de cómo usarlo:

1. Importa Querymen en tu archivo.

2. Configura las reglas de validación o filtrado para los parámetros de la consulta.

3. Usa Querymen en las rutas para manejar las consultas de los usuarios.

Ejemplo de uso:

const express = require('express');
const { middleware: querymen } = require('querymen');
const app = express();

// Definir la ruta con querymen para filtrar usuarios
app.get('/usuarios', querymen({
  nombre: { type: String },
  edad: { type: Number, min: 18 }, // Solo aceptar edades mayores de 18
  activo: { type: Boolean }
}), (req, res) => {
  const { query } = req;
  // Aquí procesas la query, por ejemplo, usando un modelo de base de datos
  res.json({ mensaje: 'Query procesada', filtros: query });
});

app.listen(3000, () => {
  console.log('Servidor ejecutándose en http://localhost:3000');
});

Algunos ejemplos

Filtrar y paginar resultados

Querymen permite filtrar por diferentes campos, paginar y limitar los resultados de una manera muy simple. Aquí un ejemplo para una API de productos:

app.get('/productos', querymen({
  categoria: String,
  precio: Number,
  disponibilidad: Boolean
}, {
  limit: 10,  // Limitar a 10 resultados por página
  page: 1     // Paginar resultados
}), (req, res) => {
  const { query, select, cursor } = req;
  // Realiza la consulta a la base de datos usando query, select y cursor
  res.json({ query, select, cursor });
});

Select y Sort en Querymen

Querymen también permite seleccionar los campos que deseas devolver (select) y ordenar los resultados (sort):

app.get('/productos', querymen({
  categoria: String,
  precio: Number
}, {
  sort: '-precio',   // Ordenar por precio descendente
  select: 'nombre precio'  // Solo devolver el nombre y el precio
}), (req, res) => {
  const { query, select, cursor } = req;
  // Aquí puedes hacer una consulta a la base de datos usando estos parámetros
  res.json({ query, select, cursor });
});

Documentación oficial

Para más información sobre el uso avanzado de Querymen, puedes consultar la documentación oficial de Querymen.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer