Files
APP-SIGMA-WEB/src/app.js
2024-07-13 00:27:32 -05:00

87 lines
2.8 KiB
JavaScript

const express = require('express');
const path = require('path');
const morgan = require('morgan');
const mysql = require('mysql');
const cloud_file = require('express-fileupload');
const myConecction = require('express-myconnection');
const cors_origins = require('cors');
//inicio de sessiones
const session = require('express-session');
//const jwt = require('jwt');
//const pool = require('./db.js');
global.config = require('./config.js');
var puerto = global.config.server.port;
const app = express();
//importando rutas
const clientesRutas = require('./rutas/rt_clientes');
const productosRutas = require('./rutas/rt_items');
const generalesRutas = require('./rutas/rt_Generales');
const cloud_rutas = require('./rutas/rt_cloud');
const app_restaurant = require('./rutas/rt_apps');
const app_arduino = require('./rutas/rt_arduino');
//configuraciones
app.set('port',process.env.PORT||puerto);
app.set('view engine','ejs');
app.set('views',path.join(__dirname, 'views'));
//app.set('vistas',path.join(__dirname, 'vistas'));
app.locals = global.config;
//app.locals.pretty;//true minificado//false minificado
//***** CONTROL DE CORDS ******/
app.use(cors_origins({origin:global.config.origin.any}));
//*****inicio de sessiones*****//
app.use(session({
secret: global.config.sessionStorage.secretSession,//llave para cifrar
resave: false,//no se guarde cada vez que se hace un cambio
saveUninitialized: true,//guardar sesion aunque no haya datos
cookie: { secure: global.config.sessionStorage.cookie }//true solo se envia por https
}));
//middlewares
app.use(express.static(__dirname+'/public'));//para usar la carpeta public *js*css*img
app.use(morgan('dev'));
app.use(myConecction(mysql,{//conexion bd
host:global.config.db.host,
user: global.config.db.user,
password:global.config.db.pswd,
port:global.config.db.port,
database:global.config.db.db_a
},'pool'));
//cuando reciba dato desde req body
app.use(express.json({limit: '25mb'}));
app.use(express.urlencoded({limit:'25mb',extended:false}));
//
//app.use(cloud_file);
app.use(cloud_file({
limits: { fileSize: 50000 * 1024 * 1024 },
}));
//rutas
app.use('/', clientesRutas);
app.use('/', productosRutas);
app.use('/', generalesRutas);
app.use('/', cloud_rutas);
app.use('/', app_restaurant);
app.use('/', app_arduino);
//prueba de json directa
app.get('/pruebaJson',function(req,res){
req.session.acount = req.session.acount ? req.session.acount + 1 : 1;
res.json([
{nombre:"Tarea1",detalle:"programacion"},
{nombre:"Tarea2",detalle:"Android Json"},
{ejecusion:req.session.acount,"id":req.sessionID},
]);
});
//archivos staticos
app.use(express.static(path.join(__dirname, 'public')));
//inicia servidor
app.listen(app.get('port'),() =>{
console.log('Servidor Activo: App SIGMA Pedidos -> Puerto: '+puerto +' -> '+new Date().toLocaleString());
});