Unidad 1: Configuración del Entorno y Fundamentos de JavaScript
1.1 Configuración del Entorno de Desarrollo
Objetivos
- Configurar un entorno de desarrollo para escribir y ejecutar código en JavaScript.
- Familiarizarse con herramientas clave: Node.js, Visual Studio Code (VSCode) y la consola.
- Ejecutar un programa básico en JavaScript para validar la configuración.
1.1.1 Instalación de Node.js y configuración básica
¿Qué es Node.js y por qué lo necesitamos?
Node.js es un entorno de ejecución para JavaScript construido sobre el motor V8 de Google Chrome. Permite ejecutar JavaScript en el lado del servidor, fuera del navegador. Esto lo convierte en una herramienta fundamental para el desarrollo de aplicaciones modernas, como servidores web, herramientas de línea de comandos y aplicaciones de tiempo real.
Historia de Node.js
- Lanzamiento inicial: Node.js fue creado por Ryan Dahl y lanzado en 2009.
- Motivación: Ryan Dahl desarrolló Node.js para solucionar problemas comunes en los servidores web tradicionales, como la falta de eficiencia al manejar múltiples conexiones simultáneas.
- Primera versión estable: La versión 0.10 fue lanzada en marzo de 2013, marcando el inicio de su adopción masiva.
- Ecosistema en crecimiento: Desde 2015, el desarrollo de Node.js es administrado por la Node.js Foundation, que posteriormente se fusionó con la JS Foundation en 2019 para formar la OpenJS Foundation.
- Licencia: Node.js está disponible bajo la licencia MIT, lo que permite su uso, modificación y distribución de forma gratuita, incluso en proyectos comerciales.
Modo de Funcionamiento
Modelo de ejecución asíncrono: Node.js utiliza un modelo basado en eventos que permite manejar múltiples solicitudes al mismo tiempo sin bloquear el servidor. Esto lo hace ideal para aplicaciones que requieren un manejo intensivo de entradas y salidas (I/O).
Motor V8: Node.js está construido sobre el motor V8 de Google Chrome, que convierte el código JavaScript en código máquina, asegurando un rendimiento óptimo.
Ejecución concurrente: Aunque utiliza un solo hilo, Node.js puede manejar múltiples conexiones simultáneamente mediante un bucle de eventos (event loop) y callbacks.
Características Clave
- Modelo No Bloqueante: Las operaciones I/O no bloquean el flujo del programa, lo que permite manejar múltiples tareas de manera eficiente.
- Compatibilidad Cross-Platform: Funciona en sistemas operativos como Windows, macOS y Linux.
- Ecosistema de Paquetes (NPM): Node.js incluye el administrador de paquetes más grande del mundo, NPM, que cuenta con más de un millón de paquetes.
- Aplicaciones en Tiempo Real: Ideal para aplicaciones como chats, juegos en línea y transmisiones en tiempo real.
- Escalabilidad: Gracias a su arquitectura basada en eventos, Node.js puede manejar un gran número de conexiones simultáneamente.
Ventajas
- Velocidad: Su motor V8 es altamente eficiente.
- Ecosistema Extenso: La comunidad de NPM ofrece soluciones para casi cualquier tarea.
- Reutilización de Conocimientos: Permite usar JavaScript en el frontend y el backend.
- Ideal para Microservicios: Su arquitectura ligera es adecuada para diseñar aplicaciones modulares.
Limitaciones
- Operaciones Intensivas en CPU: Node.js no es la mejor opción para tareas que requieren un alto procesamiento, como cálculos complejos.
- Callback Hell: Aunque mitiga esto con Promises y
async/await, el uso intensivo de callbacks puede hacer que el código sea difícil de mantener.
Casos de Uso Reales
- Netflix: Utiliza Node.js para mejorar la velocidad de carga de su interfaz de usuario.
- Uber: Emplea Node.js para manejar solicitudes en tiempo real.
- PayPal: Mejoró el rendimiento de sus aplicaciones migrando a Node.js.
Enlaces a Soluciones con Node.js
- Express.js: Framework minimalista para construir aplicaciones web y APIs.
- Socket.io: Biblioteca para crear aplicaciones en tiempo real como chats y juegos.
- NestJS: Framework para desarrollar aplicaciones backend modulares y escalables.
- Electron: Herramienta para crear aplicaciones de escritorio multiplataforma con Node.js.
- Strapi: CMS basado en Node.js para crear APIs rápidas y personalizables.
Recursos Adicionales
- Documentación oficial de Node.js: https://nodejs.org/en/docs/
- Guía para principiantes: https://www.freecodecamp.org/news/learn-node-js-beginners-guide/
- Tutorial en video: Net Ninja - Curso de Node.js
Descargar e instalar Node.js
- Accede al sitio oficial de Node.js: https://nodejs.org.
- Selecciona la versión LTS (Long Term Support).
- Descarga y sigue el proceso de instalación según tu sistema operativo.
Descargar e instalar Node.js en Windows
-
Accede al sitio oficial de Node.js:
- Ve a https://nodejs.org.
-
Encontrarás dos opciones principales de descarga:
Versiones de Node.js
- LTS (Long Term Support): Recomendado para la mayoría de los usuarios, ya que es más estable.
- Current: Incluye las últimas características, pero podría ser menos estable.
-
Selecciona LTS para garantizar estabilidad en el curso.
-
Descarga el instalador:
- Haz clic en el botón de descarga que corresponde a tu sistema operativo (Windows detectará automáticamente la versión adecuada, ya sea de 32 o 64 bits).
-
Ejecuta el instalador:
- Busca el archivo descargado (generalmente estará en la carpeta
Descargas) y haz doble clic para abrirlo.
- Busca el archivo descargado (generalmente estará en la carpeta
-
Sigue los pasos del asistente de instalación:
-
Pantalla de bienvenida:
Asistente de instalación de Node.js
- Haz clic en
Nextpara continuar.
- Haz clic en
-
Acuerdo de licencia:
Lee los términos de la licencia
- Lee los términos de la licencia y haz clic en
I accept the terms in the License Agreement, luego enNext.
- Lee los términos de la licencia y haz clic en
-
Carpeta de instalación:
Selecciona la carpeta de instalación
- Selecciona la carpeta donde deseas instalar Node.js (por defecto es
C:\Program Files\nodejs). - Se recomienda dejar la ubicación predeterminada y hacer clic en
Next.
- Selecciona la carpeta donde deseas instalar Node.js (por defecto es
-
Componentes a instalar:
Selecciona los componentes
- Asegúrate de que todas las opciones estén seleccionadas:
Componentes a instalar
- Node.js runtime: El núcleo del entorno de ejecución.
- npm package manager: Administrador de paquetes para instalar bibliotecas.
- Add to PATH: Agrega Node.js a las variables de entorno del sistema (muy importante).
- Online documentation shortcuts: Acceso rápido a la documentación en línea.
- Haz clic en
Next.
-
Herramientas adicionales para la compilación nativa (opcional):
Herramientas adicionales
- En algunos casos, el instalador puede ofrecer la opción de instalar herramientas adicionales como Python o compiladores de C++ necesarios para algunos paquetes.
- Si aparece esta opción, selecciona el checkbox y haz clic en
Next.
-
Instalación:
Proceso de instalación
- Haz clic en
Instally espera a que el instalador copie los archivos necesarios.
- Haz clic en
-
Finalización:
Finalización de la instalación
- Una vez terminada la instalación, marca la opción de "Automatically install necessary tools" (si está disponible) y haz clic en
Finish.
- Una vez terminada la instalación, marca la opción de "Automatically install necessary tools" (si está disponible) y haz clic en
-
Validación de la instalación
- Abre la terminal o consola de comandos.
-
Ejecuta los siguientes comandos para verificar que Node.js y npm están instalados correctamente:
- Mostrará la versión de Node.js instalada.
- Mostrará la versión de npm instalada.
-
Deberías ver los números de versión correspondientes.
Ejecutar un primer script en Node.js
-
Crea un archivo
hello.jscon el siguiente contenido:Hola Mundo! -
En la consola, navega hasta el directorio donde guardaste el archivo y ejecuta:
La consola debería mostrar:Ejecutar programa hello.js ¡Hola, mundo!
1.1.2 Uso de Visual Studio Code (VSCode) como editor principal
Introducción a VSCode
Visual Studio Code es uno de los editores más populares para desarrollo, con soporte para múltiples lenguajes y extensiones.
Instalación y configuración
- Descarga desde el sitio oficial: https://code.visualstudio.com.
- Instálalo y abre la aplicación.
Configuración básica
- Personaliza el tema visual desde las opciones de configuración.
-
Instala las siguientes extensiones recomendadas:
Extensiones Recomendadas
- Live Server: Permite visualizar páginas web en tiempo real.
- Prettier: Formateo automático del código.
- ESLint: Detección de errores y problemas en el código.
- JavaScript (ES6) Code Snippets: Accesos rápidos para escribir código.
Creación y ejecución de un programa en VSCode
- Abre un nuevo proyecto en VSCode.
-
Crea un archivo
app.jscon el siguiente contenido: -
Ejecuta el programa desde la terminal integrada de VSCode:
Ejecutar programa en VSCode
- Abre la terminal integrada con
Ctrl + \. - Escribe:
Ejecutar programa app.js
- Abre la terminal integrada con
1.1.3 Introducción al uso de la consola y ejecución de programas
¿Qué es la consola?
La consola es una herramienta para interactuar con el sistema operativo y ejecutar comandos.
Comandos básicos
-
Navegar entre carpetas:
-
Listar archivos:
Comandos para listar archivos
- En Windows:
dir - En macOS/Linux:
ls
- En Windows:
-
Crear y eliminar archivos:
Uso del REPL de Node.js
-
Inicia el entorno interactivo ejecutando:
-
Escribe comandos simples:
Actividad Práctica
- Configura el entorno completo instalando Node.js y VSCode.
- Crea una carpeta llamada
proyecto_inicial. -
Dentro de la carpeta, crea un archivo
index.jscon este código: -
Ejecuta el programa en la consola.
Ejecutar programa index.js
Reto Extra
- Investiga cómo instalar un paquete de npm.
-
Instala
chalky úsalo para cambiar el color del texto en la consola: -
Código de ejemplo:
Version de
chalkAsegúrate de instalar la versión 4 de
chalkpara evitar problemas de compatibilidad.
Evaluación
Los estudiantes pueden:
Evaluación
- Ejecutar scripts básicos en Node.js.
- Crear y ejecutar programas en VSCode.
- Usar la consola para navegar y gestionar archivos.
Crear un proyecto con npm
crear un proyecto nuevo
Para crear un proyecto nuevo con npm, se debe seguir los siguientes pasos (desde el terminal), si estamos en VSCode, podemos abrir la terminal integrada y si ya hamos creado la carpeta ir al paso 3:
-
Crear una carpeta para el proyecto:
-
Ingresar a la carpeta del proyecto:
-
Inicializar el proyecto con npm:
Este comando creará un archivo
package.jsoncon la configuración predeterminada: -
Crear un archivo
index.jscon el siguiente contenido:Uso de lodash
Como poner en marcha el proyecto
Para ejecutar el proyecto, se debe seguir los siguientes pasos:
-
Modificar el archivo
package.jsonpara agregar un script de inicio: -
Ejecutar el script de inicio:
Ejecutar script de inicio
De esta manera nos debe aparecer en la consola el mensaje ¡Hola desde el proyecto!.
Como hacer debug en VSCode
Para hacer debug en VSCode, se debe seguir los siguientes pasos:
- Ir a la opción de
Run and Debugen la barra lateral izquierda. - Hacer clic en el link
create a launch.json file. - Seleccionar
Node.jsen la lista de entornos de ejecución. -
Se creará un archivo
launch.jsoncon la configuración de depuración.Configuración de depuración Ahora podemos dar clic en el botón de
Runpara iniciar la depuración.
Cómo hacer debug si utilizamos la librería prompt-sync
-
Instalar la librería
prompt-sync: -
Modificar el archivo
index.jspara utilizar la librería: -
Modificar el fichero
launch.jsonpara que se pueda ejecutar el programa:
Ahora podemos añadir un punto de interrupción en el código y ejecutar el programa en modo de depuración.
Ejercicio Práctico
Siguiendo los pasos anteriores, crea un proyecto nuevo con npm, agrega un script de inicio y realiza la depuración en VSCode. Asegúrate de que el programa funcione correctamente y que puedas depurarlo.