42 lines
956 B
TypeScript
42 lines
956 B
TypeScript
import 'dotenv/config';
|
|
import express from 'express';
|
|
|
|
import authRoutes from './routes/auth';
|
|
import videosRoutes from './routes/videos';
|
|
import adminRoutes from './routes/admin';
|
|
import { ensureMinioBucket } from './utils/minio';
|
|
|
|
const app = express();
|
|
|
|
app.use(express.json());
|
|
|
|
app.get('/', (_req, res) => {
|
|
res.send('API is running');
|
|
});
|
|
|
|
app.use('/auth', authRoutes);
|
|
app.use('/videos', videosRoutes);
|
|
app.use('/admin', adminRoutes);
|
|
|
|
app.use((err: unknown, _req: express.Request, res: express.Response, _next: express.NextFunction) => {
|
|
console.error(err);
|
|
res.status(500).json({ message: 'Internal server error' });
|
|
});
|
|
|
|
const port = Number(process.env.PORT ?? 3000);
|
|
|
|
const start = async () => {
|
|
try {
|
|
await ensureMinioBucket();
|
|
} catch (error) {
|
|
console.error('MinIO initialization failed', error);
|
|
process.exit(1);
|
|
}
|
|
|
|
app.listen(port, () => {
|
|
console.log(`Server is running on port ${port}`);
|
|
});
|
|
};
|
|
|
|
start();
|