46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
import { loadEnvFile } from 'node:process'
|
|
loadEnvFile() // load envs asap
|
|
|
|
import express from 'express'
|
|
import path from 'path'
|
|
import cors from 'cors'
|
|
import healthCheckRoutes from './routes/healthcheck/index.js'
|
|
import authRoutes from './routes/auth/index.js'
|
|
import userRoutes from './routes/users/index.js'
|
|
import roleRoutes from './routes/roles/index.js'
|
|
import locationRoutes from './routes/locations/index.js'
|
|
import imageRoutes from './routes/images/index.js'
|
|
import collectionRoutes from './routes/collections/index.js'
|
|
import setRoutes from './routes/sets/index.js'
|
|
import itemRoutes from './routes/items/index.js'
|
|
|
|
const app = express()
|
|
const port = process.env.PORT || 3000
|
|
|
|
// Middleware
|
|
app.use(express.json()) // For parsing application/json
|
|
app.use(express.urlencoded({ extended: true })) // For parsing URL-encoded form data
|
|
app.use(cors())
|
|
|
|
// Mount Routes
|
|
app.use('/healthcheck', healthCheckRoutes)
|
|
app.use('/auth', authRoutes)
|
|
app.use('/users', userRoutes)
|
|
app.use('/roles', roleRoutes)
|
|
app.use('/locations', locationRoutes)
|
|
app.use('/images', imageRoutes)
|
|
app.use('/collections', collectionRoutes)
|
|
app.use('/sets', setRoutes)
|
|
app.use('/items', itemRoutes)
|
|
|
|
// Default Route (Catch-all for undefined routes)
|
|
app.use((req, res, next) => {
|
|
res.status(404).send('Sorry, the resource you requested could not be found.')
|
|
})
|
|
|
|
app.listen(port, () => {
|
|
console.log(`Server listening on port ${port}`)
|
|
})
|
|
|
|
export default app
|