• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

189
Vistas
Cómo agregar un parámetro en la solicitud de obtención de Axios

Tengo una solicitud de obtención de axios que estoy usando para obtener un elemento para una colección mongodb en un proyecto vue

 async created() { try { const res = await axios.get(`http://localhost:3002/backend/gettestbyname`, { name: "user language check numbers in different languages" }) this.items = res.data; this.imagesref = res.data[0].refimages; this.imagestest = res.data[0].testimages; this.imagesresult = res.data[0].testresults; for (let i of this.imagesref){ this.expref.push(false); this.exptest.push(false); this.expres.push(false); } this.loadAPI=true; } catch (error) { console.log(error); }

Y esta es la solicitud de obtención en mi API

 gettestbyname:function(req,res){ console.log(req.body.name); scetest.find({name:req.body.name}).exec(function(err,report){ if(err){ res.json({message:'error',status:500,data:null}) } else{ res.json({message:'report in system',status:200,data:report}) } }) }

Cuando pruebo la solicitud en Postman usando el ejemplo de datos json sin procesar: { "nombre": "nombre del elemento"} Obtengo el elemento, pero en mi aplicación obtengo una matriz de datos vacía. estoy agregando el parámetro en la solicitud de axios
EDITAR después de algunas depuraciones, noté que mi solicitud de obtención se ejecuta dos veces en mi aplicación.

La primera ejecución me está dando el resultado correcto y el req.body.name se pasa como un parámetro, la segunda ejecución solo está ejecutando la solicitud de obtención sin parámetro.

Mi aplicación está guardando solo la última solicitud que creo. Esto es lo que obtuve después de que la consola registrara el req.body y el resultado en la solicitud

 { name: 'user language check numbers in different languages' } [ { _id: new ObjectId("624c181587bdfbab1ee80cda"), name: 'user language check numbers in different languages', tag: '@DHRD-52484', status: 'skipped/pending', refimages: [], testimages: [], testresults: [], __v: 0 } ] {} []
about 3 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Es posible que deba especificar un encabezado content-type

 const reponse = await axios({ method: 'GET', headers: { 'Content-Type': 'application/json' }, data: JSON.stringify({ name: 'user language check numbers in different languages' }), url: 'http://localhost:3002/backend/gettestbyname', })

Pero debería funcionar. Además, ¡asegúrese de validar sus entradas! Tal vez lo eliminó por brevedad, pero

 console.log(req.body.name); scetest.find({name:req.body.name}).exec(function(err,report){ ... })

El campo de name debe validarse y no solo aceptarse directamente del cuerpo. Si la persona que llama coloca un objeto allí, podría alterar su consulta de formas inesperadas, definitivamente no lo pase directamente a su función de consulta.

about 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda