HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-172-31-4-197 6.8.0-1036-aws #38~22.04.1-Ubuntu SMP Fri Aug 22 15:44:33 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //var/www/enelar-back-web/src/app.js
import express from 'express'
import routes from './routes.js'
import connectDB from './database.js'
import dotenv from 'dotenv'
import cors from 'cors'
import bodyParser from 'body-parser'
import morgan from 'morgan'
import redirec from './app/url_shortener/routes/redirec.routes.js'
//import path from 'path'

const env = process.env.NODE_ENV || 'development'
dotenv.config({ path: `.env.${env}` })

class App {
  constructor() {
    this.server = express()
    this.port = process.env.PORT || 3000
    this.connectionDb()
    this.middlewares()
    this.routes()
    this.listen()
    this.ambiente()
  }

  connectionDb() {
    connectDB()
      .then(() => console.log('Conexión a la base de datos exitosa'))
      .catch((err) =>
        console.error('Error al conectar a la base de datos', err),
      )
  }

  middlewares() {
    this.server.use(cors())
    this.server.use(bodyParser.json({ limit: '50mb' }))
    this.server.use(bodyParser.urlencoded({ limit: '50mb', extended: true }))
    this.server.use(morgan('dev'))
    this.server.use('/storage', express.static('storage'))
  }

  routes() {
    this.server.use('/api', routes)
    this.server.use(redirec)
  }

  listen() {
    this.server.listen(this.port, () => {
      console.log(`La aplicación está escuchando en el puerto :${this.port}`)
    })
  }

  ambiente() {
    if (process.env.NODE_ENV === 'development') {
      console.log('Estás en el entorno de desarroll')
    } else if (process.env.NODE_ENV === 'production') {
      console.log('Estás en el entorno de producción')
    } else if (process.env.NODE_ENV === 'staging') {
      console.log('Estás en el entorno de pruebas')
    }
  }
}

export default new App().server