Bitácora de desarrollo #2 Sesión: Backend Node.js + Express + MSSQL
Autor: Santiago Villarreal
Fecha: 17 de marzo de 2025
Hora de inicio: 14:00
Hora de fin: 17:00
Horas trabajadas: 3.5 h
Descripción de avances
En esta sesión se implementó el backend de la aplicación de empleados usando Node.js, TypeScript y Express, conectado a una base de datos Microsoft SQL Server en Docker.
Trabajo realizado:
- Base de datos: Se creó el procedimiento almacenado sp_insert_empleado en database.sql, que recibe @Nombre y @Salario, verifica duplicados y devuelve un código de resultado mediante un parámetro OUTPUT.
- Estructura del backend: Se definió una arquitectura modular en proyecto-1/backend/ con carpetas para config, controllers, routes, types y utils.
- Configuración: Se configuró el pool de conexiones MSSQL como singleton en db.ts, usando variables de entorno para credenciales.
API REST:
GET /empleados: Llama a sp_list_empleados y devuelve la lista ordenada por nombre.
POST /empleados: Valida el body, llama a sp_insert_empleado y maneja el caso de nombre duplicado (400) y éxito (200).
Validaciones: Se implementó validateEmpleado con regex para el nombre (/^[a-zA-Z\s-]+$/) y validación de salario mayor que 0.
Tipado: Todo el código está tipado en TypeScript, sin uso de any.
Problemas encontrados y soluciones
- Problema 1: Errores de TypeScript al compilar por falta de tipos para cors y mssql.
- Solución: Se instalaron @types/cors y @types/mssql como dependencias de desarrollo.
- Problema 2: El procedimiento sp_insert_empleado no existía en la base de datos.
- Solución: Se ejecutó el script database.sql actualizado contra la base de datos para crear el procedimiento.
Tecnologías utilizadas:
- Node.js + TypeScript
- Express
- mssql (cliente para SQL Server)
- dotenv, cors
Próximos pasos
Integrar el frontend con la API.
Probar el flujo completo de inserción y listado de empleados.
Comentarios
Publicar un comentario