Salin dan Bagikan
Cara Membuat REST API dengan Express.js
Express.js adalah minimal Node.js framework yang populer untuk building REST APIs. Mari pelajari cara membuatnya.
Setup Project
Initialize Project
# Create directory
mkdir my-api && cd my-api
# Initialize npm
npm init -y
# Install Express
npm install express
Basic Server
// index.js
const express = require("express");
const app = express();
const PORT = 3000;
// Middleware
app.use(express.json());
app.get("/", (req, res) => {
res.json({ message: "Welcome to API" });
});
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
CRUD Operations
GET - Read Data
// Get all items
app.get("/api/users", (req, res) => {
res.json(users);
});
// Get single item
app.get("/api/users/:id", (req, res) => {
const user = users.find((u) => u.id === parseInt(req.params.id));
if (!user) return res.status(404).json({ error: "User not found" });
res.json(user);
});
POST - Create Data
app.post("/api/users", (req, res) => {
const { name, email } = req.body;
if (!name || !email) {
return res.status(400).json({ error: "Name and email required" });
}
const newUser = {
id: users.length + 1,
name,
email,
};
users.push(newUser);
res.status(201).json(newUser);
});
PUT - Update Data
app.put("/api/users/:id", (req, res) => {
const user = users.find((u) => u.id === parseInt(req.params.id));
if (!user) return res.status(404).json({ error: "User not found" });
const { name, email } = req.body;
user.name = name || user.name;
user.email = email || user.email;
res.json(user);
});
DELETE - Remove Data
app.delete("/api/users/:id", (req, res) => {
const index = users.findIndex((u) => u.id === parseInt(req.params.id));
if (index === -1) return res.status(404).json({ error: "User not found" });
users.splice(index, 1);
res.status(204).send();
});
Middleware
Custom Middleware
// Logger middleware
const logger = (req, res, next) => {
console.log(`${req.method} ${req.url} - ${new Date().toISOString()}`);
next();
};
app.use(logger);
Error Handling
// Error handler middleware
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).json({ error: "Something went wrong!" });
});
Router Organization
Separate Routes
// routes/users.js
const express = require("express");
const router = express.Router();
router.get("/", getAllUsers);
router.get("/:id", getUserById);
router.post("/", createUser);
router.put("/:id", updateUser);
router.delete("/:id", deleteUser);
module.exports = router;
Use Router
// index.js
const userRoutes = require("./routes/users");
app.use("/api/users", userRoutes);
CORS Setup
Enable CORS
npm install cors
const cors = require("cors");
app.use(cors());
Environment Variables
Using dotenv
npm install dotenv
require("dotenv").config();
const PORT = process.env.PORT || 3000;
Kesimpulan
Express.js menyediakan foundation yang solid untuk building REST APIs dengan minimal boilerplate dan maximum flexibility.
Artikel Terkait
Link Postingan : https://www.tirinfo.com/cara-membuat-rest-api-express-js/
Editor : Hendra WIjaya
Publisher :
Tirinfo
Read : 2 minutes.
Update : 7 January 2026