50 lines
1.4 KiB
JavaScript
50 lines
1.4 KiB
JavaScript
require('dotenv').config();
|
|
const PORT = process.env.PORT || 4000;
|
|
const express = require('express');
|
|
const app = express();
|
|
const cors = require('cors');
|
|
const db = require('./src/configs/database.js');
|
|
const cookieParser = require('cookie-parser');
|
|
const verifyJWT = require('./src/middleware/verifyJWT.js');
|
|
|
|
app.use(
|
|
cors({
|
|
origin: process.env.CORS_ORIGIN,
|
|
credentials: true,
|
|
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
|
|
allowedHeaders: ['Content-Type', 'Authorization'],
|
|
})
|
|
);
|
|
|
|
app.options('*', cors({
|
|
origin: process.env.CORS_ORIGIN,
|
|
credentials: true,
|
|
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
|
|
allowedHeaders: ['Content-Type', 'Authorization'],
|
|
}));
|
|
|
|
app.use(express.json());
|
|
app.use(cookieParser());
|
|
app.use(express.static('public'));
|
|
|
|
// Sync table pada database
|
|
(async () => {
|
|
try {
|
|
await db.sync();
|
|
console.log('Database synced');
|
|
} catch (err) {
|
|
console.error('DB Sync Error:', err);
|
|
}
|
|
})();
|
|
|
|
app.use('/auth', require('./src/routes/AuthRoutes.js'));
|
|
app.use('/user', verifyJWT, require('./src/routes/UserRoutes.js'));
|
|
app.use('/exam', verifyJWT, require('./src/routes/ExaminationRoutes.js'));
|
|
app.use((req, res) => {
|
|
res.status(404).json({ message: 'Endpoint tidak ditemukan' });
|
|
});
|
|
|
|
app.listen(PORT, () => {
|
|
console.log(`Server is running on http://localhost:${PORT}`);
|
|
});
|