Documentacion lista de tareas
Documentación del Código Principal (app.js)
/**
* Importación de módulos requeridos
* @module app
* @requires express Framework web para Node.js
* @requires path Módulo para manejar rutas de archivos
* @requires ./routes/tareas Router de las tareas (rutas relacionadas)
*/
const express = require('express');
const path = require('path');
const tareasRouter = require('./routes/tareas');
/**
* Instancia de la aplicación Express
* @type {Express}
*/
const app = express();
// =============================================
// CONFIGURACIÓN DEL MOTOR DE PLANTILLAS
// =============================================
/**
* Configura EJS como motor de plantillas para renderizar vistas
* @name set/view_engine
* @function
*/
app.set('view engine', 'ejs');
/**
* Establece la ruta del directorio de vistas
* @name set/views
* @function
* @param {string} path.join(__dirname, 'views') - Ruta absoluta al directorio views
*/
app.set('views', path.join(__dirname, 'views'));
// =============================================
// MIDDLEWARES
// =============================================
/**
* Middleware para procesar datos de formularios enviados via POST
* @name use/urlencoded
* @function
* @param {Object} { extended: true } - Permite parsear objetos anidados
*/
app.use(express.urlencoded({ extended: true }));
/**
* Middleware para servir archivos estáticos (CSS, JS, imágenes)
* @name use/static
* @function
* @param {string} path.join(__dirname, 'public') - Ruta al directorio public
*/
app.use(express.static(path.join(__dirname, 'public')));
// =============================================
// RUTAS PRINCIPALES
// =============================================
/**
* Monta el router de tareas en la ruta base '/tareas'
* @name use/tareasRouter
* @function
*/
app.use('/tareas', tareasRouter);
/**
* Ruta raíz que renderiza la página de inicio
* @name get/
* @function
* @param {Object} req - Objeto de petición
* @param {Object} res - Objeto de respuesta
*/
app.get('/', (req, res) => {
res.render('index');
});
// =============================================
// INICIO DEL SERVIDOR
// =============================================
/**
* Puerto en el que escuchará el servidor
* @constant
* @type {number}
*/
const PORT = 3000;
/**
* Inicia el servidor HTTP
* @name listen
* @function
* @param {number} PORT - Puerto de escucha
* @param {Function} callback - Función que se ejecuta al iniciar
*/
app.listen(PORT, () => {
console.log(`Servidor corriendo en http://localhost:${PORT}`);
});Explicación Detallada
1. Importación de Módulos
express: Framework web minimalista para Node.js que facilita la creación de servidores HTTP.
path: Módulo nativo de Node.js para trabajar con rutas de archivos y directorios.
tareasRouter: Router modularizado que contiene las rutas relacionadas con las tareas.
2. Configuración de Express
app.set('view engine', 'ejs'): Establece EJS como el motor de plantillas predeterminado.
app.set('views', ...): Define la ubicación del directorio que contiene las vistas (plantillas EJS).
3. Middlewares Clave
express.urlencoded(): Transforma los datos de formularios HTML en un objeto JavaScript accesible en
req.body.express.static(): Sirve archivos estáticos directamente desde el directorio especificado (mejora el rendimiento).
4. Sistema de Enrutamiento
app.use('/tareas', tareasRouter): Todas las rutas definidas en tareasRouter responderán bajo el prefijo '/tareas'.
app.get('/'): Ruta raíz que muestra la página principal (index.ejs).
5. Inicio del Servidor
app.listen(): Inicia el servidor HTTP en el puerto especificado (3000) y ejecuta el callback cuando esté listo.
Diagrama de Flujo
Cliente (Navegador)
↓
Solicitud HTTP
↓
Express
↓
Middlewares (urlencoded, static)
↓
Router
↓
(/) → index.ejs
(/tareas) → tareasRouter
↓
Respuesta HTTP
↓
Cliente (Navegador)Esta documentación sigue los estándares de JSDoc y proporciona una comprensión clara de cada componente del archivo principal de la aplicación.
Comentarios
Publicar un comentario