Introducción a Node.js: Guía Completa

¿Qué es Node.js?

Node.js es un entorno de ejecución de JavaScript construido con el motor V8 de Chrome. Permite ejecutar JavaScript fuera del navegador, ideal para desarrollar aplicaciones escalables del lado del servidor.

  Características clave

  • Orientado a eventos: Maneja múltiples operaciones concurrentes sin bloquear el flujo del programa.
  • Single-threaded: Usa un solo hilo para manejar peticiones, delegando tareas pesadas al sistema subyacente.
  • Open Source: Es gratuito y tiene una comunidad activa.


¿Por qué usar Node.js?

Node.js destaca por su asincronía y escalabilidad, lo que lo hace ideal para aplicaciones en tiempo real y de alta concurrencia.

  Ventajas principales

  1. Asincronía:

    • Usa un modelo Non-Blocking I/O que permite ejecutar varias tareas simultáneamente.
    • Ejemplo: mientras lee una base de datos, puede manejar otras solicitudes.
  2. Escalabilidad:

    • Diseñado para manejar grandes volúmenes de tráfico con menos recursos.
    • Ideal para aplicaciones como chats, streaming y APIs REST.
  3. JavaScript universal:

    • Usa el mismo lenguaje en frontend y backend, facilitando el desarrollo full-stack.
  4. Ecosistema npm:

    • Incluye más de un millón de paquetes para casi cualquier tarea.

Instalación de Node.js y npm

  1. Descargar e instalar Node.js:

  2. Verificar la instalación: Abre una terminal y ejecuta:

    bash
    # Muestra la versión instalada de Node.js en tu sistema
     node -v 
    
     # Muestra la versión instalada de npm (Node Package Manager) en tu sistema
     npm -v

    Deberías ver las versiones instaladas de Node.js y npm.

  3. Actualizar npm (opcional):

    bash
    npm install -g npm@latest

Estructura básica de un proyecto Node.js

Un proyecto básico en Node.js incluye los siguientes archivos y carpetas:

bash
mi-proyecto/
 ├── node_modules/   # Dependencias instaladas
 ├── src/            # Código fuente
 │   ├── index.js    # Archivo principal
 │   ├── routes/     # Definición de rutas (en proyectos grandes)
 │   ├── controllers/ # Lógica de negocio
 │   └── models/     # Definición de modelos (si usas base de datos)
 ├── package.json    # Configuración del proyecto y dependencias
 ├── package-lock.json # Control exacto de las versiones
 └── README.md       # Documentación del proyecto

Uso de package.json y sus scripts


1Crear un archivo package.json:

El archivo package.json es esencial para cualquier proyecto Node.js, ya que define las dependencias, scripts y metadatos del proyecto. Con un solo comando, puedes generarlo rápidamente con una configuración predeterminada.

Comando para crear package.json:

bash
npm init -y

Esto genera un archivo básico con información del proyecto.

2Estructura básica del package.json
json
{
   "name": "mi-proyecto",
   "version": "1.0.0",
   "description": "Mi primer proyecto en Node.js",
   "main": "index.js",
   "scripts": {
     "start": "node src/index.js",
     "dev": "nodemon src/index.js"
   },
   "dependencies": {},
   "devDependencies": {}
 }
3Scripts comunes
  • npm start: Inicia la aplicación.
  • npm run dev: Inicia la aplicación en modo desarrollo (requiere instalar nodemon):
bash
npm install --save-dev nodemon

4Instalar dependencias

Para comenzar a trabajar, es necesario instalar las dependencias que tu proyecto requerirá. A continuación, se muestra cómo instalar tanto las dependencias de producción como las de desarrollo:

Dependencias de Producción

Estas son necesarias para el funcionamiento de tu aplicación en entornos de producción.

bash
npm install express

Dependencias de Desarrollo

Estas son útiles durante la fase de desarrollo para herramientas como reinicio automático del servidor.

bash
npm install nodemon --save-dev