Sesión 5 Refactor de BD y API (SPs, códigos de salida y conexión Node)


Hora de inicio: 9:00pm
Hora de fin: 12:52 pm
Horas trabajadas: 3 h

Descripción de avances

Como el profe subió el archivo de estándares se hicieron los siguientes cambios:

  • Script database.sql: Unifiqué la base EmpresaDB, dejé la tabla Empleado, agregué DBErrors para errores de plataforma en el CATCH, y reescribí sp_list_empleados y sp_insert_empleado con parámetros @inNombre@inSalario y salida @outResultCode (0 = OK, duplicado = -1 antes del TRY, errores raros mapeados a código > 50000 y registro en DBErrors).
  • Estándar de codificación SQL: Ajusté el script al formato del curso (palabras reservadas en mayúscula, comas al inicio en listas, SELECT/FROM/WHERE separados, alias en tablas, condiciones entre paréntesis).
  • Datos: Mantuvimos al menos 40 filas de prueba en Empleado.
  • Pruebas en SSMS: Las ejecuciones manuales las pasé a database.tests.sql para no dejar EXEC “sueltos” en el script principal.
  • Backend (Express): Los endpoints pasaron a usar inNombreinSalario y a leer outResultCode desde la respuesta de execute(); así coincide con la firma nueva de los SPs.
  • Bug de inserción: Descubrimos que con node-mssql el valor del parámetro OUTPUT viene en result.output, no en request.parameters[...].value después del execute. Eso explicaba el mensaje genérico “Error desconocido al insertar…” aunque el SP estuviera bien.
  • Comentarios en el SQL: Añadí comentarios cortos al script para acordarme en revisiones qué hace cada bloque (sin tocar la lógica).

Problemas encontrados

  • Problema 1: Tras cambiar los SPs, la API seguía fallando en el insert o no interpretaba bien éxito / duplicado.
  • Problema 2: En un momento el nombre de la BD del script (EmpresaDB) no coincidía con el default del código o con el .env, lo que confunde si no se revisa.

Solución aplicada

  • Solución al problema 1: Actualizar el servidor SQL con el database.sql nuevo y, en Node, leer outResultCode desde result.output tras execute().
  • Solución al problema 2: Dejar documentado / unificado DB_DATABASE=EmpresaDB (y volver a ejecutar el script en la instancia que usa el equipo).

Próximos pasos

  • Probar en conjunto: GET lista, POST nuevo empleado, POST duplicado, y revisar si hay filas nuevas en DBErrors solo ante errores reales del motor.
  • Actualizar el análisis de resultados con la tabla de cumplimiento y las métricas si el profe las pide. 

Comentarios

Entradas más populares de este blog

Bitácora de desarrollo #2 Sesión: Backend Node.js + Express + MSSQL

Entrada sesión de prueba y error #1

Bitácora de desarrollo #4 Sesión: Conexión backend con frontend y testing