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

120
Vistas
Cómo agregar un mensaje de error personalizado en Express

Creé una aplicación de servidor donde puede servir páginas dinámicas según la ruta. Simplemente, esto comprueba si el número de ruta proporcionado es un número primo o no... Por ejemplo, localhost:3000/isprime/7 -------> El parámetro de entrada 7 es un número primo localhost:3000/isprime/36 -------> El parámetro de entrada 36 no es un número primo

El problema es, ¿cómo puedo crear un controlador de errores para mostrar un mensaje de error si se ingresan letras en la dirección en lugar de dígitos? Por ejemplo, localhost:3000/isprime/four

Tengo un conocimiento muy limitado del manejo de errores en el expreso. Cualquier ayuda sería muy apreciada.

Aquí está mi código hasta ahora,

 app.get('/isprime/:inputNumber(\\d+)', function(request, response) { let num =parseInt(request.params.inputNumber); function isPrime(num) { for(var i = 2; i < num; i++) if(num % i === 0) return false; return num > 1; } if(isPrime(num)) { var p = '<span style="color:blue;">IS a prime number.</span>'; } else { var p = '<span style="color:red;">IS NOT a prime number.</span>'; } let html = ''; html += '<h1>Prime Number Check</h1>'; html += '<p>The input parameter <b> ' + num +'</b>....'+ p+ '</p>'; response.send(html); });
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Intente usar isNaN(), isNaN() da un valor booleano si el número es válido; de lo contrario, devuelve falso,

Aquí hay un ejemplo para su código

 app.get('/isprime/:inputNumber(\\d+)', function(request, response) { let num = parseInt(request.params.inputNumber); if(isNaN(num)) { response.send("<h1>Invalid number</h1>"); return; } function isPrime(num) { for (var i = 2; i < num; i++) if (num % i === 0) return false; return num > 1; } if (isPrime(num)) { var p = '<span style="color:blue;">IS a prime number.</span>'; } else { var p = '<span style="color:red;">IS NOT a prime number.</span>'; } let html = ''; html += '<h1>Prime Number Check</h1>'; html += '<p>The input parameter <b> ' + num + '</b>....' + p + '</p>'; response.send(html); });
about 4 years ago · Juan Pablo Isaza Denunciar

0

El (\\d+) que está poniendo al final de la definición de su ruta hace que solo los parámetros con 1 o más dígitos coincidan con la ruta.

Si elimina eso, y luego isNaN() para probar si el valor del parámetro se analiza como un número entero, podrá seleccionar las solicitudes que desea y enviar una respuesta a las solicitudes con valores de parámetro que son solo letras.

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