clouddisk-project/backend/src/index.js

60 lines
2.0 KiB
JavaScript

const express = require('express');
// const cors = require('cors'); // Using custom cors middleware
const authRoutes = require('./routes/auth');
const fileRoutes = require('./routes/files');
const shareRoutes = require('./routes/share');
const syncRoutes = require('./routes/sync');
const previewRoutes = require('./routes/preview');
const userRoutes = require('./routes/user');
const searchRoutes = require('./routes/search');
const batchRoutes = require('./routes/batch');
const trashRoutes = require('./routes/trash');
const statsRoutes = require('./routes/stats');
const recentRoutes = require('./routes/recent');
const renameRoutes = require('./routes/rename');
const copyRoutes = require('./routes/copy');
const folderRoutes = require('./routes/folder');
const healthRoutes = require('./routes/health');
const versionRoutes = require('./routes/version');
const errorHandler = require('./middleware/errorHandler');
const logger = require('./middleware/logger');
const app = express();
const PORT = process.env.PORT || 3000;
const corsMiddleware = require('./middleware/cors');
app.use(corsMiddleware);
const rateLimitMiddleware = require('./middleware/rateLimit');
app.use(rateLimitMiddleware);
app.use(express.json());
app.use(logger);
app.use('/api/auth', authRoutes);
app.use('/api/files', fileRoutes);
app.use('/api/share', shareRoutes);
app.use('/api/sync', syncRoutes);
app.use('/api/preview', previewRoutes);
app.use('/api/user', userRoutes);
app.use('/api/search', searchRoutes);
app.use('/api/batch', batchRoutes);
app.use('/api/trash', trashRoutes);
app.use('/api/stats', statsRoutes);
app.use('/api/recent', recentRoutes);
app.use('/api/rename', renameRoutes);
app.use('/api/copy', copyRoutes);
app.use('/api/folder', folderRoutes);
app.use('/api/health', healthRoutes);
app.use('/api/version', versionRoutes);
app.use(errorHandler);
app.get('/api/health', (req, res) => {
res.json({ status: 'ok' });
});
app.listen(PORT, () => {
console.log(`CloudDisk API running on port ${PORT}`);
});
module.exports = app;