When building APIs with Express.js, you’ll work a lot with four main types of HTTP requests:
- GET – Fetch data
- POST – Create new data
- PUT – Update existing data
- DELETE – Remove data
In this post, you’ll learn how to handle each of these request types using Express.
Project Setup (Quick Recap)
Before writing routes, make sure your Express project is set up:
mkdir express-crud-demo
cd express-crud-demo
npm init -y
npm install express
Create an index.js
file:
// index.js
const express = require('express');
const app = express();
// Middleware to parse JSON
app.use(express.json());
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Server running at http://localhost:${PORT}`);
});
Sample Data (In-Memory Array)
Let’s create a fake list of users for demonstration:
let users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' }
];
1. GET Request – Fetch All Users
app.get('/users', (req, res) => {
res.json(users);
});
Try it:
GET http://localhost:3000/users
2. POST Request – Add a New User
app.post('/users', (req, res) => {
const newUser = {
id: users.length + 1,
name: req.body.name
};
users.push(newUser);
res.status(201).json(newUser);
});
Sample Request Body:
{
"name": "Charlie"
}
3. PUT Request – Update a User
app.put('/users/:id', (req, res) => {
const userId = parseInt(req.params.id);
const user = users.find(u => u.id === userId);
if (!user) {
return res.status(404).json({ message: 'User not found' });
}
user.name = req.body.name;
res.json(user);
});
Sample Request:
PUT http://localhost:3000/users/1
Body:
{
"name": "Updated Alice"
}
4. DELETE Request – Remove a User
app.delete('/users/:id', (req, res) => {
const userId = parseInt(req.params.id);
const index = users.findIndex(u => u.id === userId);
if (index === -1) {
return res.status(404).json({ message: 'User not found' });
}
users.splice(index, 1);
res.json({ message: 'User deleted successfully' });
});
Complete Example
Here’s the full version of index.js
with all routes:
const express = require('express');
const app = express();
app.use(express.json());
let users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' }
];
app.get('/users', (req, res) => {
res.json(users);
});
app.post('/users', (req, res) => {
const newUser = {
id: users.length + 1,
name: req.body.name
};
users.push(newUser);
res.status(201).json(newUser);
});
app.put('/users/:id', (req, res) => {
const userId = parseInt(req.params.id);
const user = users.find(u => u.id === userId);
if (!user) return res.status(404).json({ message: 'User not found' });
user.name = req.body.name;
res.json(user);
});
app.delete('/users/:id', (req, res) => {
const userId = parseInt(req.params.id);
const index = users.findIndex(u => u.id === userId);
if (index === -1) return res.status(404).json({ message: 'User not found' });
users.splice(index, 1);
res.json({ message: 'User deleted successfully' });
});
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Server is running at http://localhost:${PORT}`);
});
Summary
HTTP Method | Purpose | Route Example |
---|---|---|
GET | Read data | /users |
POST | Create data | /users |
PUT | Update data | /users/:id |
DELETE | Delete data | /users/:id |
With this basic CRUD setup, you're ready to build REST APIs using Express.
Top comments (0)