Cómo verificar un número en Node.js

El siguiente código se utiliza para probar si una variable dada es un entero y si su valor es mayor que cero:

let test_port = "443";
if (!(Number.isInteger(test_port)) || (Number(test_port) <= 0)) {
  throw new Error(`Invalid port: "${test_port}"`);
}

Problema encontrado

Al ejecutar este código, se produce un error que indica que el puerto "443" es inválido:

Error: Invalid port: "443"

Análisis del problema

El problema radica en que la variable test_port es una cadena (string) en lugar de un número (number). La función Number.isInteger espera un número, y dado que "443" es una cadena, la verificación falla y lanza el error.

Solución

Para solucionar este problema, debe convertir la cadena test_port a un número antes de verificar si es un entero y si es mayor que cero. Esto se puede hacer utilizando la función parseInt o Number. Aquí está el código corregido:

let test_port = "443";
let parsed_port = Number(test_port); // Conversión de string a número

if (!Number.isInteger(parsed_port) || (parsed_port <= 0)) {
  throw new Error(`Invalid port: "${test_port}"`);
}

Resumen

Es importante asegurarse de que el tipo de dato sea el correcto antes de realizar verificaciones. Al convertir la cadena a un número antes de la validación, se evita que se produzca el error y se asegura que el código funcione como se espera.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *