Master Express.js fundamentals with our comprehensive tutorial. Learn through examples and hands-on practice.
Express.js is a minimal and flexible Node.js web application framework. Let's explore core JavaScript concepts used in Express applications.
// Express.js route handler
const express = require('express');
const app = express();
// Route handler function
app.get('/', (req, res) => {
res.send('Hello from Express!');
});
// Start server
app.listen(3000, () => {
console.log('Server running on port 3000');
});Understanding Express.js route handler concepts with simulation
Routing determines how your application responds to client requests. Let's simulate routing logic.
// Express.js Routing
const express = require('express');
const app = express();
// Mock users database
const users = [
{ id: 1, name: 'John Doe', email: 'john@example.com' },
{ id: 2, name: 'Jane Smith', email: 'jane@example.com' },
{ id: 3, name: 'Bob Johnson', email: 'bob@example.com' }
];
// GET all users
app.get('/users', (req, res) => {
res.json(users);
});
// GET user by ID
app.get('/users/:id', (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
if (user) {
res.json(user);
} else {
res.status(404).json({ message: 'User not found' });
}
});
// POST create user
app.post('/users', (req, res) => {
const newUser = { id: users.length + 1, ...req.body };
users.push(newUser);
res.status(201).json(newUser);
});
app.listen(3000);Simulating different route handlers and HTTP methods
Middleware functions process requests before they reach route handlers. Let's understand the middleware chain.
// Express.js Middleware
const express = require('express');
const app = express();
// Middleware 1: Logger
app.use((req, res, next) => {
console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);
req.timestamp = Date.now();
next();
});
// Middleware 2: Authentication
const authMiddleware = (req, res, next) => {
// Check authentication
req.authenticated = true;
next();
};
app.use(authMiddleware);
// Middleware 3: Body Parser
app.use(express.json());
// Route handler
app.post('/api/users', (req, res) => {
const timeTaken = Date.now() - req.timestamp;
res.json({
message: 'Request processed',
timeTaken,
authenticated: req.authenticated,
data: req.body
});
});
app.listen(3000);Understanding middleware chain execution order