File: /var/www/myc/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'
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)
}
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