69 lines
2.1 KiB
JavaScript
69 lines
2.1 KiB
JavaScript
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');
|
|
}); |