Skip to content

Commit ecc168e

Browse files
authored
Merge pull request #40 from deepesh224-ux/feature/server-improvements
Feature/server improvements
2 parents 6f0d0ec + ace789a commit ecc168e

4 files changed

Lines changed: 61 additions & 25 deletions

File tree

scripts/dbConfig.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

scripts/seed.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ import "dotenv/config";
44
import Product from "../src/models/product.model.js";
55
import { readFile } from "fs/promises";
66
import path from "path";
7-
import dbConnection from "./dbConfig.js";
8-
97

108
if (!process.env.MONGODB_URI) {
119
console.error("❌ MONGODB_URI is missing. Please create a .env file based on .env.example and set your MongoDB connection string.");
@@ -25,15 +23,23 @@ async function getSeedProducts() {
2523

2624
const seedDB = async()=>{
2725
try{
28-
await dbConnection();
29-
console.log(`Seeding data to database ${mongoose.connection.name}`);
26+
// Connect to MongoDB using the same logic as server.js
27+
console.log("🔄 Connecting to MongoDB for seeding...");
28+
await mongoose.connect(process.env.MONGODB_URI);
29+
console.log(`✅ Connected to MongoDB: ${mongoose.connection.name}`);
30+
31+
console.log(`🌱 Seeding data to database ${mongoose.connection.name}`);
3032
const seedProducts = await getSeedProducts();
3133
await Product.deleteMany();
3234
await Product.insertMany(seedProducts);
33-
console.log("Seeding complete.");
35+
console.log("✅ Seeding complete.");
36+
37+
// Close connection and exit
38+
await mongoose.connection.close();
39+
console.log("🔌 Database connection closed");
3440
process.exit(0);
3541
}catch (err) {
36-
console.error("Error seeding DB", err);
42+
console.error("Error seeding DB:", err);
3743
process.exit(1);
3844
}
3945
}

server.js

Lines changed: 49 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,53 @@
1+
import mongoose from 'mongoose';
12
import app from './src/app.js';
3+
import 'dotenv/config';
24

35
const PORT = process.env.PORT || 5000;
46

5-
app.listen(PORT, () => {
6-
console.log(`Server is running on port ${PORT}`);
7-
});
7+
/**
8+
* Connect to MongoDB and start the Express server
9+
*/
10+
const startServer = async () => {
11+
try {
12+
// Check if MONGODB_URI is provided
13+
if (!process.env.MONGODB_URI) {
14+
console.error('❌ MONGODB_URI is not defined in environment variables');
15+
process.exit(1);
16+
}
17+
18+
// Connect to MongoDB
19+
console.log('🔄 Connecting to MongoDB...');
20+
await mongoose.connect(process.env.MONGODB_URI);
21+
console.log(`✅ Connected to MongoDB: ${mongoose.connection.name}`);
22+
23+
// Start Express server
24+
app.listen(PORT, () => {
25+
console.log(`🚀 Server is running on port ${PORT}`);
26+
console.log(`📊 Database: ${mongoose.connection.name}`);
27+
});
28+
29+
} catch (error) {
30+
console.error('❌ Failed to start server:', error.message);
31+
process.exit(1);
32+
}
33+
};
34+
35+
// Handle MongoDB connection events
36+
mongoose.connection.on('error', (err) => {
37+
console.error('❌ MongoDB connection error:', err);
38+
});
39+
40+
mongoose.connection.on('disconnected', () => {
41+
console.warn('⚠️ MongoDB disconnected');
42+
});
43+
44+
// Graceful shutdown
45+
process.on('SIGINT', async () => {
46+
console.log('\n🛑 Shutting down server...');
47+
await mongoose.connection.close();
48+
console.log('✅ MongoDB connection closed');
49+
process.exit(0);
50+
});
51+
52+
// Start the server
53+
startServer();

src/app.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,9 @@ import cors from 'cors';
33
import productRoutes from './routes/product.routes.js';
44
import cartRoutes from './routes/cart.routes.js';
55
import collectionRoutes from './routes/collection.routes.js';
6-
import dbConnection from '../scripts/dbConfig.js';
76
import errorHandler from './middleware/error-handler.middleware.js';
87
import notFound from './middleware/notFound.middleware.js'
98
const app = express();
10-
11-
dbConnection();
129
app.use(cors());
1310
app.use(express.json());
1411

0 commit comments

Comments
 (0)