Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

226
Vistas
el parámetro de consulta no está en la sintaxis correcta

Estoy tratando de filtrar una colección por nombre (u otros campos) al verificar los parámetros de URL y su valor, por ejemplo

 http://localhost:3000/patient?filter=name:jack

Tengo un método para recuperar el cochecito de URL y convertirlo en un objeto json:

 const filter = handleQueryFilter(req.query.filter) const handleQueryFilter = (query) => { try{ // convert the string to look like json object // example id: -1, name: 1 to { id: "-1"}, {name: "1" } const toJSONString = ("{" + query ).replace(/(\w*[^:].$)/g, (matched => { return '"' + matched.substring(0, matched.length ) + '"}' ; })); return JSON.parse(toJSONString); }catch(err){ return JSON.parse("{}"); // parse empty json if the clients input wrong query format } }

Lo que alguna vez devolvió el 'handleQueryFilter' se pasa al método 'find' para obtener el resultado de la base de datos

 let patients = await Patient.find(filter);

Sin embargo, handleQueryFilter siempre devuelve un objeto vacío (la parte de captura anterior), ¿qué estoy haciendo mal?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Primero: haga que express pase req.body automáticamente usando

 app.use(express.json())

Edite su URL para que sea: http://localhost:3000/patient?name=jack

about 4 years ago · Juan Pablo Isaza Denunciar

0

Su operación de replace no hace lo que se supone que debe hacer:

 "{id: -1, name: 1".replace(/(\w*[^:].$)/g, (matched => { return '"' + matched.substring(0, matched.length ) + '"}' }))

devuelve '{id: -1, name:" 1"}' , que no es JSON válido, por lo tanto, JSON.parse da un error.

Prueba algo como

 Object.fromEntries("id: -1, name: 1".split(/,\s*/).map(_=>_.split(/:\s*/)))

que devuelve {id: '-1', name: '1'} sin necesidad de JSON.parse .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda