Factura PDF creada con Node.js, JavaScript y html-pdf

Factura PDF con Node.js

En este post de programación con JavaScript del lado del servidor con Node.js y un poco de express te mostraré cómo crear una factura, ticket o recibo PDF usando estas tecnologías.

Voy a enseñarte dos ejemplos. En el primero verás cómo crear un recibo PDF y guardarlo en el almacenamiento, mientras que en el segundo ejemplo te enseñaré mostrar el ticket PDF con Express.

Esto solo es una continuación a mi post de cómo crear un PDF con Node. Recuerda que tú eres libre de cambiar los estilos y modificar la plantilla, lo que aquí te muestro es mi ejemplo.

(más…)

Formatear dinero en JavaScript

Formatear dinero en JavaScript

Hoy te enseñaré cómo formatear dinero con JavaScript, o mejor dicho, formatear un número para mostrarlo como dinero o moneda.

Normalmente usamos toFixed() pero hoy te enseñaré algo más elegante que incluso podría ser una buena alternativa a la maravillosa función number_format de PHP.

Recuerda que como es JavaScript vamos a poder usar esto del lado del cliente así como del lado del servidor con Node.js.

(más…)

Crear PDF con Node.js y mostrarlo en navegador con Express

Crear PDF con Node.js

En este post de programación con JavaScript del lado del servidor te mostraré cómo crear un PDF usando Node.js y el paquete html-pdf.

Gracias a esto vamos a generar un PDF usando una plantilla HTML. Aunque al inicio puede parecer complejo verás que en realidad es una forma muy simple de crear facturas, tickets y todo tipo de documentos PDF.

Además de guardar el PDF en el almacenamiento, te enseñaré cómo mostrar el PDF directamente en el navegador usando Express.

(más…)

Manejo de fracciones con JavaScript - Resolver operaciones

Manejo de fracciones con JavaScript

En este post de programación en JavaScript (que cubre el lado del cliente con los navegadores y también el lado del servidor con Node) veremos cómo manejar fracciones o quebrados para realizar operaciones con los mismos.

Manejo de fracciones con JavaScript - Resolver operaciones

Manejo de fracciones con JavaScript – Resolver operaciones

Es decir, vamos a implementar la clase Fracción y manejar con ella las operaciones de suma, resta, división, multiplicación, simplificación, inversa, exponente y conversión a mixta o a impropia desde JavaScript.

Al final vas a poder realizar cualquier operación matemática con las fracciones usando programación orientada a objetos y JS.

(más…)

JavaScript - Mínimo común múltiplo de dos números

JavaScript: mínimo común múltiplo

En este post de matemáticas con JavaScript te voy a enseñar cómo calcular el mínimo común múltiplo de dos números.

Vamos a usar una fórmula matemática ayudándonos también del máximo común divisor, pasando todo ello a una función de JS que podremos invocar desde cualquier lugar: en un servidor con Node, en un formulario del lado del cliente, etcétera.

Por cierto el mínimo común múltiplo es aquel número menor (distinto de cero) que es múltiplo de dos números.

(más…)

Máximo común divisor usando JavaScript JS

Máximo común divisor en JavaScript

En este post de programación en JS vamos a ver cómo sacar el máximo común divisor de dos números usando el algoritmo de Euclides con dos enfoques: recursivo y con ciclos.

Máximo común divisor usando JavaScript JS

Máximo común divisor usando JavaScript JS

Al final tendremos una función que te dice el máximo común divisor (MCD) de dos números usando JavaScript.

Recuerda que el Máximo común divisor es el mayor número que divide a dos números de manera entera. Hay varios enfoques pero hoy te enseñaré cómo hacerlo en JavaScript.

(más…)

Configurar publicPath de Vue CLI en ./

En este tutorial te mostraré cómo hacer que la ruta pública de Vue (al usar la vue cli para compilar nuestros proyectos con npm run build) sea el directorio actual, es decir, ./.

Normalmente la Vue CLI va a compilar y crear el archivo index.html pero en las rutas habrá algo como:

script src=/js/script.js

Si te fijas, no tiene el ./, por lo que en varios servidores causará errores. Hoy te enseñaré cómo hacer que Vue CLI compile las rutas de manera relativa al directorio actual.

(más…)

SPA con MERN: ejemplo de aplicación web

En este artículo te enseñaré un ejemplo completo de conexión a MongoDB y Express con React. Vamos a usar el stack MERN para hacer un CRUD completo.

Al final tendremos un proyecto completo que será una single page application escrita con React, misma que consumirá una API de Node creada con Express. Los datos van a residir en una base de datos de MongoDB a la que vamos a acceder usando Mongoose.

Como siempre, te explicaré el código más importante a través del post, y te dejaré el repositorio completo al final del post para que puedas explorarlo a tu gusto.

(más…)

Ejemplo simple de conexión a MongoDB con Mongoose

En este post te mostraré cómo crear un modelo de Mongoose para guardarlo en una base de datos de MongoDB. Además, te mostraré cómo hacer las cuatro operaciones fundamentales.

Será un ejemplo muy simple para comenzar a usar esta librería que permite definir modelos que más adelante vamos a insertar, actualizar, listar o eliminar de una base de datos de MongoDB.

Nota: aquí asumo que ya tienes un poco de conocimiento con node para ejecutar un archivo de JavaScript, iniciar el servidor, etcétera.

(más…)

Encriptar contraseñas con Node

En este post de programación con JavaScript del lado del servidor en el entorno de Node te mostraré cómo asegurar las contraseñas de los usuarios; esto es, encriptarlas.

De hecho me parece que el término correcto es hashear, pues encriptar es convertir algo plano a encriptado y luego poder hacer lo contrario; en cambio hashear es convertir algo plano a encriptado, pero ya no poder obtener el valor original a partir del encriptado.

Como sea, te mostraré cómo asegurar, encriptar o cifrar las contraseñas. Vamos a usar el algoritmo bcrypt pues es perfecto para hashear contraseñas en Node.

(más…)

Relaciones SQL con Sequelize y Node

En este post te mostraré cómo hacer una relación o asociación entre tablas con el ORM Sequelize para hacer la relación a nivel base de datos y también para traer los datos usando la asociación. Es decir, lo que tiene que ver con foreign key, inner join, left join, etcétera.

Te mostraré cómo insertar datos y solo especificar la clave foránea, contrario a lo que se muestra en la documentación en donde se insertan ambos modelos a la vez.

La razón es porque, por ejemplo, si un trabajador pertenece una oficina, solo importa guardar el id de oficina en caso de que esta ya se haya creado antes, y no se requiere guardar una oficina por cada trabajador.

(más…)

Por parzibyte, hace