⚙️ Backend Setup
⚙️ Initialize Backend & Install Dependencies
cd MERN-project
mkdir backend
cd backend
npm init -y
npm install express mongoose dotenv cors
npm install --save-dev nodemon
[!info] 📦 Packages Explained
-
⚡ Express → Web server framework
-
🗄️ Mongoose → MongoDB object modeling
-
🔐 dotenv → Manage environment variables
-
🔗 CORS → Enable cross-origin requests
-
♻️ Nodemon → Auto-restart server during development
🏗️ Create Project Structure & Starter File
touch server.js .env
mkdir models controllers routes middlewares utils db`
📝 server.js (template)
const express = require('express');
const mongoose = require('mongoose');
const cors = require('cors');
require('dotenv').config();
const app = express();
app.use(express.json());
app.use(cors());
const PORT = process.env.PORT || 5000;
mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log('✅ MongoDB Connected'))
.catch(err => console.log('❌ MongoDB Error:', err));
app.get('/api', (req, res) => res.send('API Running'));
app.listen(PORT, () => console.log(🚀 Server running on port ${PORT}));
[!note] 🔑 Tip
Store sensitive info (like MONGO_URI
) in .env
.
Example:
-
MONGO_URI=mongodb://localhost:27017/mern_db
-
API Keys
-
Express for server, Mongoose for MongoDB, dotenv for config, CORS for cross-origin, Nodemon for dev server restarts.
Create Project Structure & Server Starter File:
touch server.js .env
mkdir models controllers routes middlewares utils db
server.js (template):
const express = require('express');
const mongoose = require('mongoose');
const cors = require('cors');
require('dotenv').config();
const app = express();
app.use(express.json());
app.use(cors());
const PORT = process.env.PORT || 5000;
mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log('MongoDB Connected'))
.catch(err => console.log(err));
app.get('/api', (req, res) => res.send('API Running'));
app.listen(PORT, () => console.log(Server running on port ${PORT}));
- Use
.env
for config (e.g. MONGO_URI)._//