Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

263
Views
Comprobación de la validación mediante una declaración de cambio

Estoy tratando de configurar la representación condicional usando en el backend para permitir que un usuario actualice su perfil. Mi primer pensamiento fue usar una declaración de cambio, ya que es caso por caso lo que quieren actualizar (nombre de usuario, ubicación, etc.), sin embargo, no puedo hacer que la validación funcione caso por caso. ¿Hay una forma más eficiente de hacer esto sin usar ReactJS? A continuación se muestra el código y el registro de errores. Eliminé la cláusula de "interrupción" para que el interruptor continúe verificando un valor real. También probé ".trim().length" como parte de la validación, pero el error de validación que publiqué sigue apareciendo también.

perfil.js

 router.post("/update/:id", (req, res) => { console.log("UPDATING ROUTE HIT \n"); try { console.log("MADE IT INSIDE THE TRY ROUTE \n"); if (req.isAuthenticated()) { User.findOne({ id: req.params.id }, (err, foundUser) => { if (foundUser) { console.log("FOUND USER \n"); const newUpdate = { username: req.body.username, company: req.body.company, location: req.body.location, position: req.body.position, }; switch (true) { // THIS IS THE PROBLEM case newUpdate.username !== "" && newUpdate.username !== User.find({ username: { $ne: null } }): foundUser.username = newUpdate["username"]; case newUpdate.company !== "" && newUpdate.company.length >= 3: foundUser.company = newUpdate["company"]; case newUpdate.location !== "" && newUpdate.location.length >= 3: foundUser.location = newUpdate["location"]; case newUpdate.position !== "" && newUpdate.position.length >= 3: foundUser.position = newUpdate["position"]; break; default: console.log("FAILED TO ENTER ANYTHING" + err + "\n"); break; } foundUser.save((err) => { if (err) { console.log("THERE WAS AN ERROR: " + err + "\n"); } else { console.log("SUCCESSFULLY CHANGED POSITION"); } }); res.redirect("/profile"); } else { console.log("FOUND THE ANSWER" + err + "\n"); } }); } } catch (error) { console.log("THERE WAS AN ERROR(caught): " + error + "\n"); } });

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Como ya estaba usando una sentencia switch y es O(n), decidí usar un bucle while y configurar el condicionamiento en torno a los mismos principios que estaba buscando en la sentencia switch, y luego salí del bucle. Todo funcionó bien. Esto es lo que hice a continuación.

Perfil.js

 while (newUpdate) { if ( newUpdate.username.trim().length >= 3 && newUpdate.username !== User.find({ username: { $ne: null } }) ) { foundUser.username = newUpdate["username"]; } if (newUpdate.company.trim().length >= 3) { foundUser.company = newUpdate["company"]; } if (newUpdate.location.trim().length >= 3) { foundUser.location = newUpdate["location"]; } if (newUpdate.position.trim().length >= 3) { foundUser.position = newUpdate["position"]; } foundUser.save((err) => { if (err) { console.log(err); } }); break; }

También arreglé el problema principal. Al hacer esto, pude obtener el uso de ".trim().length y establecer la condición en consecuencia. Al principio no sabía que las etiquetas de entrada siempre devuelven una cadena vacía durante la validación y que su propiedad heredada es equivalente a 0. Por lo tanto, pude establecer una condición para que se volviera falso y pasar a la siguiente función, razón por la cual quería usar el interruptor en primer lugar.

about 4 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 Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!