Your backend is running on:
[Link](PORT, () => [Link](`Server running on port ${PORT}`));
where
const PORT = [Link] || 5000;
So your server starts at
[Link]
THEN YOU MOUNTED YOUR ROUTES
[Link]('/api/auth', authRoutes);
[Link]('/api/events', eventRoutes);
[Link]('/api/bookings', bookingRoutes);
This means Express prefixes every route with these paths.
For example, suppose [Link] contains
[Link]('/login', login);
[Link]('/register', register);
The actual URLs become
POST [Link]
POST [Link]
Similarly, if [Link] contains
[Link]('/');
[Link]('/:id');
[Link]('/');
The URLs become
GET [Link]
GET [Link]
POST [Link]
And for bookings
[Link]('/my');
becomes
GET [Link]
WHY IS YOUR AXIOS BASEURL ONLY THIS?
const api = [Link]({
baseURL: '[Link]
});
Because /api is common to all your routes.
Then you simply call
[Link]('/auth/login', data);
Axios combines them.
baseURL
+
endpoint
[Link]
+
/auth/login
[Link]
EXAMPLE 1: LOGIN
[Link]('/auth/login', {
email,
password
});
Request goes to
POST [Link]
EXAMPLE 2: REGISTER
[Link]('/auth/register', userData);
Actual URL
POST [Link]
EXAMPLE 3: GET EVENTS
[Link]('/events');
Actual URL
GET [Link]
EXAMPLE 4: BOOK EVENT
[Link]('/bookings', bookingData);
Actual URL
POST [Link]
WHAT DOES THE INTERCEPTOR DO?
[Link]((config) => {
const token = [Link]('token');
if (token) {
[Link] = `Bearer ${token}`;
}
return config;
});
This runs before every request.
Suppose after login your frontend stores
[Link]("token", jwtToken);
Now whenever you write
[Link]('/bookings/my');
Axios automatically changes it to
GET /api/bookings/my
Host: localhost:5000
Authorization: Bearer eyJhbGciOiJIUzI1Ni...
So you don't need to manually add the token to every request.
COMPLETE FLOW
Frontend
[Link]('/events')
Axios
baseURL = [Link]
Final URL
[Link]
Interceptor executes
↓
Adds JWT Token
Authorization: Bearer eyJhbGc...
Express receives request
[Link]('/api/events', eventRoutes)
events router
Controller
Database
Response
This is why your baseURL is [Link] instead of
[Link] or .../events —because /api is the
common prefix shared by all your route groups.