Chapter 13: Basic Express.js
Chapter 13 of 15
Chapter 13: Basic Express.js
13.1 Express Setup
Express.js is a minimal web framework for Node.js. It simplifies server creation and routing.
// Install Express
// npm install express
// Basic Express app
const express = require('express');
const app = express();
// Define routes
app.get('/', (req, res) => {
res.send('Hello World');
});
app.get('/about', (req, res) => {
res.send('About Page');
});
// Start server
app.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});
Express Features:
- Simple routing
- Middleware support
- Template engines
- Static file serving
- Error handling
Basic Routing:
// GET request
app.get('/users', (req, res) => {
res.json([{ id: 1, name: 'John' }]);
});
// POST request
app.post('/users', (req, res) => {
// Handle POST data
res.status(201).json({ success: true });
});
// PUT request
app.put('/users/:id', (req, res) => {
const id = req.params.id;
// Update user
res.json({ id, updated: true });
});
// DELETE request
app.delete('/users/:id', (req, res) => {
res.json({ deleted: true });
});
13.2 Middleware
Middleware functions execute during request processing.
// Custom middleware
app.use((req, res, next) => {
console.log(`${req.method} ${req.url}`);
next(); // Continue to next middleware
});
// Built-in middleware
app.use(express.json()); // Parse JSON bodies
app.use(express.urlencoded({ extended: true })); // Parse URL-encoded bodies
// Static files
app.use(express.static('public'));
13.3 Request and Response
Express provides enhanced request and response objects.
Request Object:
- req.params: Route parameters
- req.query: Query string parameters
- req.body: Request body (with body parser)
- req.headers: Request headers
Response Methods:
- res.send(): Send response
- res.json(): Send JSON response
- res.status(): Set status code
- res.redirect(): Redirect to URL
13.4 Express Best Practices
Follow best practices for Express applications.
- Organize routes in separate files
- Use middleware for common tasks
- Handle errors with error middleware
- Use environment variables for configuration
- Validate request data
- Set appropriate security headers