How Express.js works?
What is Express.js?
Express.js is a lightweight and flexible web application framework built on **Node.js**. It simplifies the process of building server-side applications by providing powerful features like routing, middleware support, and template engines.
How Does It Work?
1. Handle HTTP Requests:
- Express acts as a middleware between the client and the Node.js server.
- When a client (e.g., a browser or mobile app) sends an HTTP request (GET, POST, PUT, DELETE, etc.), Express processes the request and provides a suitable response.
2. Routing:
- Express defines URL-based routes to determine how the server should respond to client requests. For example, if a user accesses `/home` or `/products`, Express decides which code should execute.
- Example:
```javascript
const express = require('express');
const app = express();
app.get('/home', (req, res) => {
res.send('Welcome to the Home Page!');
});
app.post('/submit', (req, res) => {
res.send('Form submitted!');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
```
3. Middleware:
- Middleware functions are small units of code that execute during the lifecycle of a request. They can modify the request/response, add functionality, or handle errors.
- Middleware is executed in the order it is defined, which makes it easy to control the application flow.
- Example:
```javascript
app.use((req, res, next) => {
console.log(`Request URL: ${req.url}`);
next(); // Passes control to the next middleware or route
});
```
4. Templates for Dynamic Content:
- Express supports template engines like **EJS**, **Pug**, and **Handlebars** for generating dynamic HTML content on the server.
- Example using EJS:
```javascript
app.set('view engine', 'ejs');
app.get('/user', (req, res) => {
res.render('profile', { name: 'Abdur', age: 25 });
});
```
5. Static File Serving:
- Express can serve static files like images, CSS, or JavaScript easily.
- Example:
```javascript
app.use(express.static('public')); // Serves files from the 'public' folder
```
6. Request and Response Objects:
- The `req` (request) object provides details about the incoming client request (e.g., query parameters, HTTP headers).
- The `res` (response) object is used to send data back to the client, such as JSON, HTML, or a file.
7. Error Handling:
- Express provides an error-handling mechanism via middleware to capture and manage application errors.
- Example:
```javascript
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});
```
8. REST APIs:
- Express is often used to build RESTful APIs for client-server communication. You define various endpoints that allow the client to interact with the server.
- Example:
```javascript
app.get('/api/products', (req, res) => {
res.json([{ id: 1, name: 'Laptop' }, { id: 2, name: 'Phone' }]);
});
```
Why Use Express.js?
- Simplicity: Minimal setup and intuitive syntax.
- Flexibility: Supports multiple middleware layers, routing mechanisms, and template engines.
- Scalability: Easily scales with your application as its complexity grows.
- Community Support: Being one of the most popular frameworks, it has a robust ecosystem of modules and libraries.
Comments
Post a Comment
Write something to CodeWithAbdur!