project-knedita/src/app.ts

36 lines
925 B
TypeScript
Raw Normal View History

2023-06-20 20:05:15 +00:00
import 'dotenv/config'
import compression from 'compression'
import cors from 'cors'
2023-06-20 20:05:15 +00:00
import express from 'express'
import limiter from 'middlewares/rate-limit'
import morganMiddleware from 'middlewares/morgan'
import router from './routes'
2023-06-20 20:05:15 +00:00
const app = express()
// TODO: test socket io, emit notifications when create one.
// TODO: test update name, email and password routes.
// TODO: start to create the client, or a barebone to test socket io
// TODO: see how we create authentication with socket io.
2023-06-20 20:05:15 +00:00
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use(morganMiddleware)
app.use(limiter)
app.use(router)
2023-06-20 20:05:15 +00:00
app.use(compression({ level: 9 }))
app.use(cors({
credentials: true,
origin: '*', // TODO: Add client development (and production too) url
optionsSuccessStatus: 200
}))
2023-06-20 20:05:15 +00:00
app.use((_req, res) => {
res.status(404).json({
error: 'Endpoint not found'
2023-06-20 20:05:15 +00:00
})
})
export default app