Express.js ofrece dos mecanismos para proveer de datos al servidor para el filtrado de datos: parámetros de consulta (Query String) y parámetros de ruta (Route parameters).
De MySQL Community Downloads, descargue e instale:
Crea un nuevo proyecto, según Express - Bases, Express - ORM (Básico) y Express - ORM (Intermedio).
hito3-apiLa cláusula where se utiliza para filtrar la consulta. Hay muchos operadores para usar en la cláusula where, disponibles con el símbolos de Op: Op.between, Op.and, Op.or, etc.
routes/fotos.js
  const Sequelize = require('sequelize');
  
por
  const { Sequelize, Op } = require('sequelize');
  
Los parámetros de consulta forman parte de una URL después del signo de interrogación (?). Sirve para enviar datos al servidor, que se utilizarán como filtros para la respuesta.
routes/fotos.js
    GET con la subruta /findAllByRate/jsonlower y higher, con:
  ...
  let lower = parseFloat(req.query.lower);
  let higher = parseFloat(req.query.higher);
  ...
        
...
Foto.findAll({
  attributes: { exclude: ["updatedAt"] } ,
  include: [{
    model: Etiqueta,
    attributes: ['texto'],
    through: {attributes: []}
  }], 
  where: { 
    calificacion: { 
      [Op.between]: [lower, higher]
    }
  }
})  
.then(fotos => {  
  res.json(fotos);  
})  
.catch(error => res.status(400).send(error)) 
...
      http://localhost:3000/fotos/findAllByRate/json?lower=0&higher=1.2
    calificacion es aleatorio.
  
Compruebe su funcionamiento con otros valores
http://localhost:3000/fotos/findAllByRate/json?lower=1.2&higher=4.7http://localhost:3000/fotos/findAllByRate/json?lower=3&higher=6.2Otra forma para pasar datos al servidor consiste en colocar información dentro de la ruta URL real. A este mecanismo se denomina parámetros de ruta.
routes/fotos.js
    GET con la subruta /findAllById/:id/jsonid, con:
...
let id = parseInt(req.params.id);
...
    
 ...
 Foto.findAll({  
    attributes: { exclude: ["updatedAt"] } ,
    include: [{
        model: Etiqueta,
        attributes: ['texto'],
        through: {attributes: []}
      }], 
    where: { 
      [Op.and]: [
        {id: id}
      ]
    }
})  
.then(fotos => {  
    res.json(fotos);  
})  
.catch(error => res.status(400).send(error)) 
 ...
  http://localhost:3000/fotos/findAllById/1/json
  
Compruebe su funcionamiento con otros valores
http://localhost:3000/fotos/findAllById/2/jsonhttp://localhost:3000/fotos/findAllById/6/json