const controlador = {}; //const dirPath = "/home/pablinux/Projects/Node/APP-SIGMA-WEB/src/public/files/"; //const var_locals = ; //********* APP-panel control ********// const { stringTo_md5 } = require('../scripts/helpers'); const path = require('path'); controlador.upload = (req, res) => { if (!req.files || Object.keys(req.files).length === 0) { return res.status(400).json({ status: 'error', message: 'Archivos no cargados' }); } else { const file = req.files.file_toUpload; const destinationPath = path.join(req.app.locals.dir.path_dir, file.name); file.mv(destinationPath, (err) => { if (err) { console.error("Error al mover el archivo:", err); return res.status(500).json({ status: 'error', message: 'Error al subir el archivo', error: err.message }); } // *** Mantener la respuesta JSON *** return res.json({ status: "success", message: `Archivo '${file.name}' subido exitosamente.` }); }); } }; controlador.upload_video = (req, res) => { if (!req.files || Object.keys(req.files).lenght === 0) { return res.status(400).send({ message: 'archivos no cargados' }); } else { const file = req.files.file_toUpload; const path = req.app.locals.dir.path_dir + '/public/videos/' + file.name; console.log(path); file.mv(path, (err) => { if (err) { return res.status(500).send(err); } return res.send({ status: "success", path: path }); }); } }; //ruta actual const fs = require('fs'); // Asegúrate de que esta línea esté al principio del archivo si no lo está function leer_dir(dir) { var json = []; // ¡CORRECCIÓN AQUÍ! Usa 'dir' directamente, sin añadir '/public/files/' var files = fs.readdirSync(dir, { withFileTypes: true }); files.forEach(function (arch, idx) { // Si el link para la interfaz web debe ser relativo a 'files/', esto es correcto. json.push({ "indice": idx, "archivo": arch.name, "link": "files/" + arch.name }); // Nota: 'arch' es un objeto dirent, necesitas 'arch.name' para el nombre del archivo. }); return json; } controlador.login_cloud = (req, res) => { res.render('login_cloud', { token: "pfx00168224" }); }; //ojo la var locals esta en req //ejmp: req.app.locals controlador.cloud_panel = (req, res, next) => { console.log(req.body); var pwd = stringTo_md5(req.body.password); req.getConnection((err, conn) => { conn.query(`SELECT * FROM usuarios WHERE n_sesion = ? and clave=?`, [req.body.usuario, pwd], (err, rows) => { if (err) { //res.json(err); res.render('login_cloud', { token: "error" }); } else { try { if (rows.length > 0) { //let dir = procesarPath(req.params.path); //console.log(req.app.locals.dir); var files = leer_dir(req.app.locals.dir.path_dir); res.render('cloud', { data: files }); console.log(rows); //res.render('app_pedidos'); }else { // Agrega un else para cuando no hay resultados en la consulta res.render('login_cloud', { msg: "Usuario o contraseña incorrectos." }); } } catch (e) { res.render('login_cloud',{msg:e.toString()}); next(e); } } }); }); }; module.exports = controlador;