Node.JS

JavaScript – Saber si cadena es Pangrama

Anteriormente vimos cómo saber si una string es un pangrama en Python.

Ahora veremos cómo comprobar que una cadena es un pangrama en JavaScript, para ello usaremos un algoritmo simple en combinación con el método includes.

Recuerda que un pangrama es aquella oración que contiene todas las letras de un alfabeto de determinado idioma; en este caso lo haremos con el alfabeto español, aunque también se podrá modificar para otro alfabeto como el inglés.

Continue reading…

Dividir arreglo en trozos pequeños con JavaScript

JavaScript – Dividir arreglo en pedazos (arreglos más pequeños)

En este post voy a explicar cómo partir o dividir un arreglo en trozos, es decir, a partir de un arreglo, crear un arreglo de arreglos que tengan determinados elementos. Todo esto usando JavaScript (funciona en el navegador y en Node.Js)

Por ejemplo, tengo un arreglo de 8 elementos y lo reparto en pedazos de 3, formando un arreglo de 3 arreglos, los dos primeros tendrán 3 elementos y el último 2; justo como se ve en la imagen:

Dividir arreglo en trozos pequeños con JavaScript

Dividir arreglo en trozos pequeños con JavaScript

Lo único que usaremos será la función slice, push y ciclos for. Cabe mencionar que podremos cambiar la longitud de los pedazos y que no importa el tipo de dato de los arreglos.

Continue reading…

Anatomía de setTimeout en JavaScript

setTimeout y setInterval en JavaScript, un acercamiento a los hilos

En este post voy a explicar dos funciones muy importantes que existen en JavaScript, me refiero a setTimeout y setInterval.

Ambas funciones nos permiten tener algo parecido a los hilos o threads en JavaScript, pero de una manera muy simple. Y por simple no quiero decir que le falten características, sino que es muy fácil de usar.

Por cierto, setTimeout y setInterval funcionan tanto en los navegadores web como en Node JS.

Continue reading…

Código para guardar página web como imagen usando Node JS

Tomar captura o foto de una página web con Node JS, PhantomJS y node-webshot

En este post explicaré cómo tomar una captura de pantalla de cualquier página web con Node.JS. Es decir, tomar un screenshot de un sitio de internet como si lo visitáramos, pero sin realmente visitarlo.

Vamos a obtener la página web como una imagen usando JavaScript del lado del servidor. Para esto vamos a usar Node JS, PhantomJS y un módulo llamado node-webshot.

Código para guardar página web como imagen usando Node JS

Código para guardar página web como imagen usando Node JS

Lo que alcanzaremos al final será guardar una página web como una imagen PNG. También veremos algunas opciones que el paquete ofrece.

Continue reading…

Generar id o cadena única (UUID) en Node JS

Generar UUID o ID único en Node JS

Un UUID es un identificador único; personalmente lo uso para generar cadenas aleatorias y criptográficamente seguras. Hoy veremos cómo generar un ID único o identificador único con Node JS y un paquete llamado UUID.

Vamos a usar la versión 4 de UUID, es decir, el paquete uuid/v4 de Node. Eso nos dará una cadena como la siguiente:

c2f1a568-fd6e-46c9-95d7-e6aafd6d56bd

Se supone que la probabilidad de que se repita es casi nula, y que es aleatoria y segura; es decir, que no es predecible.

Continue reading…

Solución a Error: PhantomJS exited with return value 127

Hace un momento estaba ejecutando una aplicación de NodeJS en un servidor con Ubuntu 18, todo bien, ejecuté npm install pero al momento de usar PhantomJS saltó el error que dice:

Error: PhantomJS exited with return value 127

Lo raro de todo esto es que había instalado las dependencias correctamente, y en Windows (y otros sistemas operativos) funcionaba a la perfección.

Al final encontré la solución, la cual era una simple dependencia a nivel de sistema operativo.

Continue reading…

Ejemplo de respuesta de API JSON de DuckDuckGo

Consumir API de DuckDuckGo con Node.JS

El buscador DuckDuckGo, aparte de todas las ventajas que tiene en comparación con Google y otros buscadores, proporciona una API que si bien no sirve para buscar como en el buscador, funciona para obtener respuestas inmediatas y buscar definiciones.

Hoy veremos cómo consumir esta API basada en JSON utilizando JavaScript del lado del servidor: Node.JS. Un ejemplo de lo que la API devuelve es lo siguiente (al buscar JavaScript):

Ejemplo de respuesta de API JSON de DuckDuckGo

Ejemplo de respuesta de API JSON de DuckDuckGo

Consumir esta API no es nada difícil, pues es una simple petición GET y parseo de JSON.

Continue reading…

Ejemplo de respuesta de la API de JsonPlaceholder

Petición HTTP GET simple en Node.js con request

Node, JavaScript del lado del servidor, provee un modo para comunicarse a través de http: el módulo http. Sin embargo, este módulo es un poco largo de usar, así que se han creado varios módulos o paquetes y uno de ellos es request.

El módulo de request tiene otra envoltura llamada request-promise, el cual es como request pero usando promesas.

En fin, vamos a ver cómo hacer una petición GET HTTP usando Node y el módulo request. Será un ejemplo sencillo y básico pero que servirá para ejemplos más avanzados.

Continue reading…

Aumentar números más allá del máximo en JS

BigInt en JavaScript

Los números en JavaScript tienen un límite, no sé cuál, pero tienen un límite y si se sobrepasa, se experimentan comportamientos raros. Es por ello que no podemos tener números muy grandes, porque los mismos pueden ocasionar problemas de contabilidad y esas cosas.

Pero no nos podemos quedar así, y es por eso que ha llegado el tipo de dato BigInt en JavaScript (seguramente también está el BigFloat o algo así) que permite tener enteros muy grandes (algo así como la maravillosa librería GMP programada en C)

En este post veremos cómo usar el tipo de dato BigInt en JavaScript, así como sus ventajas y algunos usos. Gracias a BigInt podemos hacer aritmética sin preocuparnos por los límites.

Continue reading…

Algoritmo para calcular factorial en JavaScript

Factorial de un número en JavaScript con recursividad y ciclos

En este post vamos a ver cómo calcular el factorial de un número en JavaScript de dos maneras distintas. Una de ellas es usar un ciclo para calcular el factorial, y la otra es usando la recursividad o recursión.

Algoritmo para calcular factorial en JavaScript

Algoritmo para calcular factorial en JavaScript

También veremos el cálculo del factorial de un número usando a BigInt, un nuevo tipo de dato para JavaScript.

Continue reading…

Leer contenido de archivo con Node.JS, readline y fs

Leer el contenido de un archivo con Node.JS, fs y readline

En este artículo voy a exponer una cosa simple: leer un archivo txt con JavaScript del lado del servidor y el módulo fs. Leer el contenido de un archivo puede ser útil para la persistencia de datos; leer configuraciones o valores separados por comas.

Para leer un archivo con Node.js no se necesita instalar ningún paquete adicional, únicamente a fs que ya viene incluido por defecto.

Leer contenido de archivo con Node.JS, readline y fs

Leer contenido de archivo con Node.JS, readline y fs

Voy a mostrar 2 formas de leer un archivo, la primera es leerlo completamente (viene bien para archivos pequeños) y la segunda es leerlo línea por línea usando otro módulo llamado readline pero que igualmente viene incluido por defecto y que funciona mejor para archivos más grandes.

Continue reading…

Parsear y leer CSV en Node.JS con csv-parse

Parsear CSV con NodeJS y csv-parse

Node.JS ha ganado popularidad para programar aplicaciones del lado del servidor utilizando JavaScript. Parsear o leer un archivo CSV (valores separados por coma) es algo requerido muchas veces, por ejemplo, para importar datos o simplemente como medio de comunicación.

Parsear y leer CSV en Node.JS con csv-parse

Parsear y leer CSV en Node.JS con csv-parse

Es por eso que en este artículo explico cómo abrir, leer y parsear un archivo CSV utilizando Node.JS (el lenguaje JavaScript del lado del servidor) y un módulo llamado csv-parse que nos facilitará la tarea.

Continue reading…

Codificar y decodificar JSON en JavaScript y Node JS

Codificar y decodificar JSON con JavaScript

JSON en JavaScript sirve para muchísimas cosas. En los casos más comunes, al hacer peticiones AJAX viene bien codificar los datos como JSON antes de enviarlos.

Por otro lado, si tenemos a JavaScript del lado del servidor, igualmente podríamos decodificar los datos que un cliente mande; o codificarlos antes de hacer otra petición.

Codificar y decodificar JSON en JavaScript y Node JS

Codificar y decodificar JSON en JavaScript y Node JS

Otros usos, que si bien no son los mejores, son para comparar objetos en profundidad.

Hoy veremos cómo codificar y decodificar JSON en JavaScript sin usar eval ni librerías extras.

Continue reading…

Eliminar duplicados de un arreglo en JavaScript

Eliminar elementos duplicados de arreglos en JavaScript

En este post veremos cómo eliminar elementos repetidos o duplicados de un arreglo en JavaScript. Para esto, no nos limitaremos a arreglos con tipos de datos simples; sino también arreglos de objetos.

Eliminar duplicados de un arreglo en JavaScript

Eliminar duplicados de un arreglo en JavaScript

Explicado de otra forma, lo que haremos será:

  • Ver cómo eliminar datos primitivos (cadena, entero, booleano, etcétera) repetidos de arreglos en JavaScript
  • Eliminar objetos repetidos, ya sea basados en una propiedad o comparándolos en profundidad.

Vamos allá.

Continue reading…