const http = require('http'); const mysql = require('mysql2'); // Configuración de la conexión a MySQL const db = mysql.createConnection({ host: 'localhost', // MySQL está en tu misma máquina user: 'root', // Usuario por defecto (cámbialo si es necesario) password: 'Starfox19.', // Asegúrate de que sea la contraseña correcta database: 'lania', // Nombre de tu base de datos }); // Conectar a MySQL db.connect((err) => { if (err) { console.error('❌ Error al conectar a MySQL:', err.message); return; } console.log('✅ Conectado a MySQL'); }); // Crear servidor HTTP const server = http.createServer((req, res) => { // Solo aceptamos GET en la ruta principal if (req.method === 'GET' && req.url === '/') { const query = ` SELECT e.id_usuario AS user_id, e.correo AS email, e.estado_procedencia AS procedencia, e.edad AS rango_edad, e.empresa AS proveedor, s.consentimiento AS consentimiento_publicidad FROM entrada e LEFT JOIN salida s ON e.id_usuario = s.id_usuario `; // Ejecutar consulta db.query(query, (err, results) => { if (err) { res.writeHead(500, { 'Content-Type': 'application/json' }); res.end(JSON.stringify({ error: 'Error en la base de datos' })); return; } // Formatear respuesta const data = results.map((user) => ({ user_id: user.user_id.toString().padStart(3, '0'), email: user.email, procedencia: user.procedencia, rango_edad: user.rango_edad, proveedor: user.proveedor, consentimiento_publicidad: user.consentimiento_publicidad, })); // Enviar respuesta res.writeHead(200, { 'Content-Type': 'application/json' }); res.end(JSON.stringify(data, null, 2)); // Formato bonito en JSON }); } else { // Ruta no encontrada res.writeHead(404, { 'Content-Type': 'text/plain' }); res.end('Ruta no encontrada'); } }); // Iniciar servidor en el puerto 3000 server.listen(3001, () => { console.log('🚀 Servidor Node.js escuchando en http://localhost:3001'); });