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

257
Vistas
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 Respuestas
Responde la pregunta

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 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