COMO RECOGER PARÁMETROS EN NODEJS

En NodeJS, cuando se usa el módulo Express, los parámetros de una solicitud HTTP se pueden recoger de varias formas, dependiendo de cómo se envíen en la solicitud. A continuación, te explico las formas más comunes de recoger parámetros en una aplicación Express.
  • Parámetros de ruta: Los parámetros de ruta son partes de la URL definidas como variables, usando dos puntos (:) en la definición de la ruta. Por ejemplo, si tenemos una ruta que devuelve un artículo por su identificador "articles/:id", :id es un parámetro de ruta. Ejemplo

    app.get('/articles/:id', (req, res) => {
      const id = req.params.id; // Recoge el parámetro 'id' de la URL
      console.log('ID recibido:', id);
      return res.status(200).json({ status: 'success', id });
    });
    
    Pueden haber múltiples parámetros y el ejemplo sería:

    app.get('/articles/:id/:category', (req, res) => {
      const { id, category } = req.params; // Desestructura id y category
      console.log('ID:', id, 'Categoría:', category);
      return res.status(200).json({ status: 'success', id, category });
    });
    
  • Los parámetros de consulta (query strings) se envían en la URL después de un signo de interrogación (?) en el formato clave=valor, separados por &. Por ejemplo: /articles?sort=asc&limit=10. El ejemplo sería:

    app.get('/articles', (req, res) => {
      const { sort, limit } = req.query; // Recoge parámetros de consulta
      console.log('Sort:', sort, 'Limit:', limit);
      return res.status(200).json({
        status: 'success',
        sort: sort || 'default',
        limit: limit || '10'
      });
    });
    
  • Parámetros en las cabeceras. Los encabezados de la solicitud se recogen desde "req.headers".

    app.get('/articles', (req, res) => {
      const authToken = req.headers['authorization']; // Recoge el encabezado 'Authorization'
      console.log('Token de autorización:', authToken);
      return res.status(200).json({
        status: 'success',
        token: authToken || 'No proporcionado'
      });
    });
    

Consejos

  • Validación de parámetros: Agrega validaciones (por ejemplo, verificar que id sea un número o que title no esté vacío) para hacer el código más robusto.
  • Seguridad: Usa parámetros en las consultas SQL (?) para evitar inyecciones SQL, como se muestra en el modelo.
  • Errores específicos: Maneja casos como valores no válidos en req.query o req.body con mensajes claros.
  • Depuración: Si no recibes los parámetros esperados, verifica la consola y usa herramientas como Postman para inspeccionar las solicitudes.