• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

188
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error