Entrada 4
Fecha: [19/03/2026]
Inicio: [18:30] | Fin: [21:05] | Total: [2 horas y 30 minutos]
Presentes: Matías Benavides Sandoval / Sebastián Ramírez Abarca
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
¿QUÉ HICIMOS HOY?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Sesión enfocada en configurar el proyecto Node.js + TypeScript y lograr la primera conexión exitosa entre el backend y SQL Server
1. Corregimos el error de PowerShell que impedía usar npm en VS Code.
2. Inicializamos el proyecto con npm init y creamos la estructura de carpetas: src/db, src/controllers, src/routes public/css, public/js
3. Instalamos las dependencias de producción: express y mssql.
4. Instalamos las dependencias de desarrollo: typescript, ts-node
5. Configuramos el archivo tsconfig.json con las opciones necesarias para el proyecto.
6. Creamos el archivo connection.ts con la configuración de conexión a SQL Server.
7. Habilitamos el usuario sa en SQL Server y le asignamos contraseña para poder conectarse desde Node.js.
8. Creamos el index.ts como punto de entrada del servidor Express.
9. Logramos la primera conexión exitosa:
- Servidor corriendo en http://localhost:3000
- Conexión a SQL Server establecida
- Ya en el navegador sale "Servidor funcionando"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PROBLEMAS ENCONTRADOS Y CÓMO SE RESOLVIERON
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Problema 1:
Descripción: npm no funcionaba en PowerShell de VS Code: Mensaje de error:
"npm.ps1 cannot be loaded because running scripts is disabled on this system"
Solución:
Ejecutar en PowerShell: Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned Causa: Windows bloquea scripts de PowerShell por defecto por seguridad.
Problema 2:
Descripción: Node.js no podía conectarse a SQL Server
Mensaje de error: "ConnectionError: Failed to connect to localhost\SQLEXPRESS in 15000ms - code: ETIMEOUT"
Solución: Cambiar la configuración del server en connection.ts de: server: 'localhost\\SQLEXPRESS' A: server: 'localhost', port: 1433
Causa: mssql no resuelve bien el nombre de instancia con doble barra en algunas configuraciones. Especificar el puerto directamente evita ese error y deja claro la conexión.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DUDAS Y DIVERGENCIAS DE CRITERIO
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Discutimos si usar Autenticación de Windows o usuario sa para conectarse a SQL Server. Decidimos usar sa porque la autenticación de Windows no funciona cuando el compañero se conecte desde otra máquina via Hamachi, ya que su computadora no pertenece al mismo dominio.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AVANCE DEL CÓDIGO (si aplica)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MORALEJAS / CONSEJOS / BUENAS PRÁCTICAS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- En Windows, PowerShell bloquea scripts por defecto. Siempre configurar la política de ejecución antes de intentar usar npm.
- Para conexiones remotas (en nuestro caso Hamachi), usar autenticación de SQL Server (sa) en lugar de autenticación de Windows. La autenticación de Windows solo funciona en la misma máquina o dominio.
- Especificar el puerto 1433 explícitamente es más confiable que usar el nombre de instancia (localhost\\SQLEXPRESS).
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PRÓXIMA SESIÓN: ¿QUÉ SIGUE?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- Crear el empleadoController.ts que invoca los SPs.
- Crear las rutas en routes/empleados.ts.
Comentarios
Publicar un comentario