Introduction
APIs are the backbone of modern web applications, enabling communication between different software systems. Express.js, a minimalist and powerful Node.js framework, simplifies API development, making it fast and efficient.
In this guide, we will explore why Express.js is great for API development, its features, and how to build a simple API.
Why Use Express.js for APIs?
1. Lightweight & Fast
Express.js is built on Node.js, ensuring high performance and quick response times.
2. Easy to Learn & Use
With its simple syntax and minimal setup, beginners can quickly start developing APIs.
3. Middleware Support
Middleware functions make request handling flexible and customizable.
4. Routing System
Express.js provides a clean and efficient way to define API routes.
5. JSON Support
Express.js makes it easy to send and receive JSON data, which is essential for APIs.
Setting Up an Express.js API

Step 1: Install Node.js and Express.js
Ensure you have Node.js installed. Then, create a new project and install Express.js:
mkdir my-api
cd my-api
npm init -y
npm install express
Step 2: Create an API Server
Create a file server.js
and add the following code:
const express = require('express');
const app = express();
const port = 3000;
app.use(express.json()); // Middleware to parse JSON
app.get('/', (req, res) => {
res.send('Welcome to Express.js API!');
});
app.listen(port, () => {
console.log(`API server running on http://localhost:${port}`);
});
Run the server using:
node server.js
Your API is now running on http://localhost:3000/.
Creating API Endpoints

1. GET Endpoint (Fetching Data)
const users = [
{ id: 1, name: 'John Doe' },
{ id: 2, name: 'Jane Doe' }
];
app.get('/api/users', (req, res) => {
res.json(users);
});
Visiting http://localhost:3000/api/users returns a JSON response with user data.
2. POST Endpoint (Adding Data)
app.post('/api/users', (req, res) => {
const newUser = req.body;
users.push(newUser);
res.status(201).json(newUser);
});
This allows users to send data via POST requests.
3. PUT Endpoint (Updating Data)

app.put('/api/users/:id', (req, res) => {
const userId = parseInt(req.params.id);
const user = users.find(u => u.id === userId);
if (user) {
Object.assign(user, req.body);
res.json(user);
} else {
res.status(404).json({ message: 'User not found' });
}
});
4. DELETE Endpoint (Removing Data)
app.delete('/api/users/:id', (req, res) => {
const userId = parseInt(req.params.id);
const userIndex = users.findIndex(u => u.id === userId);
if (userIndex !== -1) {
users.splice(userIndex, 1);
res.json({ message: 'User deleted' });
} else {
res.status(404).json({ message: 'User not found' });
}
});
Testing Your API

Use Postman or a similar tool to send requests to your API and test the endpoints.
Conclusion
Express.js makes building APIs quick, easy, and scalable. With its minimal setup and powerful features, you can create robust RESTful APIs in no time.
Next Steps:
- Add authentication using JWT.
- Connect a database (MongoDB or MySQL).
- Deploy your API to a cloud platform.
Start building your own APIs today with Express.js and power up your web applications!