48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
const express = require('express');
|
|
const cors = require('cors');
|
|
const path = require('path');
|
|
const { connectDB, sequelize } = require('./config/db');
|
|
const authRoutes = require('./routes/auth');
|
|
const commonRoutes = require('./routes/common');
|
|
const petRoutes = require('./routes/pets');
|
|
const seedData = require('./scripts/seedData');
|
|
|
|
const app = express();
|
|
const port = 3000;
|
|
|
|
// Middleware
|
|
app.use(cors());
|
|
app.use(express.json()); // Body parser for JSON
|
|
app.use(express.urlencoded({ extended: true })); // For multipart form-data handling if needed (though multer handles it)
|
|
|
|
// Static Files
|
|
app.use('/uploads', express.static(path.join(__dirname, 'uploads')));
|
|
|
|
// Routes
|
|
app.use('/auth', authRoutes);
|
|
app.use('/common', commonRoutes);
|
|
app.use('/pets', petRoutes);
|
|
|
|
app.get('/', (req, res) => {
|
|
res.send('Hello from Express Backend!');
|
|
});
|
|
|
|
// Database Connection & Server Start
|
|
const startServer = async () => {
|
|
await connectDB();
|
|
|
|
// Sync models
|
|
// force: false to keep data, alter: true to update schema
|
|
await sequelize.sync({ alter: true });
|
|
console.log('Database synced');
|
|
|
|
// Seed Data
|
|
await seedData();
|
|
|
|
app.listen(port, '0.0.0.0', () => {
|
|
console.log(`Backend app listening on port ${port}`);
|
|
});
|
|
};
|
|
|
|
startServer();
|