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

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

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 Report

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