Quick reference Express.js. Routing, middleware, request/response, error handling, dan best practices untuk building Node.js REST APIs.
Login atau daftar akun gratis untuk membaca cheat sheet ini.
Cara menginstall Express.js dan dependencies yang diperlukan untuk memulai development.
npm init -y
npm install express
# With TypeScript
npm install --save-dev typescript @types/node @types/expressCara membuat server Express.js sederhana dengan route dasar untuk memulai aplikasi.
const express = require('express');
const app = express();
const PORT = 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(PORT, () => {
Routing adalah cara Express menangani permintaan HTTP ke endpoint yang berbeda.
Metode HTTP yang didukung Express untuk berbagai jenis operasi API.
app.get('/users', (req, res) => {}); // GET
app.post('/users', (req, res) => {}); // POST
app.put
Route parameters memungkinkan kita menangkap nilai dinamis dari URL.
// Single parameter
app.get('/users/:id', (req, res) => {
const id = req.params.id;
res.send(`User ${id}`);
});
// Multiple parameters
Query parameters adalah bagian dari URL yang mengandung data tambahan seperti filter atau pagination.
// /search?q=javascript&page=2
app.get('/search', (req, res) => {
const { q, page = 1 } = req.query;
res.json({ q, page });
});Router module memungkinkan kita memisahkan route ke file terpisah untuk organisasi kode yang lebih baik.
// routes/users.js
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {});
router.
Middleware adalah fungsi yang menjalankan tugas tertentu sebelum request sampai ke route handler.
Middleware bawaan Express untuk parsing request body dan serving static files.
// Parse JSON body
app.use(express.json());
// Parse URL-encoded body
app.use(express.urlencoded({ extended: true }));
// Serve static files from 'public' directory
app.use(express.static('public'));
// Serve from specific path
Cara membuat middleware custom untuk keperluan tertentu seperti logging atau authentication.
// Application-level
app.use((req, res, next) => {
console.log('Time:', Date.now());
next();
});
// Route-level
const logger
Middleware dari package npm yang populer untuk menambah fitur keamanan dan utility.
npm install cors helmet morgan compression cookie-parserconst cors = require('cors');
const helmet = require('helmet');
const morgan = require('morgan');
const compression = require(
Cara menangani error di Express dengan middleware khusus untuk error.
// 404 handler (after all routes)
app.use((req, res, next) => {
res.status(404).json({ error: 'Not Found' });
});
// Error handler (4 parameters!)
app.use((
Request object berisi semua informasi tentang HTTP request yang masuk ke server.
app.post('/api/users', (req, res) => {
// Body data
const { name, email } = req.body;
// Route parameters
const
Berbagai method yang tersedia untuk mengirim response kembali ke client.
app.get('/api/demo', (req, res) => {
// Send string/HTML
res.send('Hello');
res.send(
Contoh lengkap implementasi REST API dengan semua operasi CRUD dasar.
const express = require('express');
const app = express();
app.use(express.json
Cara mengintegrasikan Express dengan berbagai database untuk penyimpanan data.
Cara menggunakan PostgreSQL sebagai database dengan package pg.
npm install pgconst { Pool } = require('pg');
const pool = new Pool({
user: 'postgres',
host: 'localhost',
database: 'mydb',
password: 'password'
ORM modern untuk Node.js yang memudahkan interaksi dengan database.
npm install @prisma/client
npx prisma initconst { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
app.get('/api/users', async (req, res) => {
Library untuk validasi data yang type-safe dan mudah digunakan.
npm install zodconst { z } = require('zod');
const userSchema = z.object({
name: z.string().min(2),
email: z.string().
Implementasi authentication menggunakan JSON Web Tokens untuk keamanan API.
npm install jsonwebtoken bcryptconst jwt = require('jsonwebtoken');
const bcrypt = require('bcrypt');
Middleware untuk menangani upload file dari client ke server.
npm install multerconst multer = require('multer');
const storage = multer.diskStorage({
destination: (req, file, cb)
Cara menggunakan environment variables untuk konfigurasi aplikasi yang aman.
npm install dotenvPORT=3000
DATABASE_URL=postgresql://user:pass@localhost:5432/db
JWT_SECRET=your-secret-key
NODE_ENV=developmentrequire('dotenv').config();
const PORT = process.env.PORT || 3000;
const DB_URL = process.env.DATABASE_URL;Praktik keamanan penting untuk melindungi aplikasi Express dari berbagai ancaman.
npm install helmet cors express-rate-limitconst helmet = require('helmet');
const cors = require('cors');
const rateLimit = require('express-rate-limit');
// Security headers
app.use
Cara menangani error dalam kode async/await dengan elegan.
// Wrapper function
const asyncHandler = (fn) => (req, res, next) => {
Promise.resolve(fn(req, res, next)).catch
Cara menulis dan menjalankan test untuk API Express menggunakan Jest dan Supertest.
npm install --save-dev jest supertestconst request = require('supertest');
const app = require('./app');
describe('GET /api/users', () => {
it('should return all users'
Struktur folder yang direkomendasikan untuk proyek Express.js yang terorganisir.
my-app/
├── src/
│ ├── controllers/
│ │ ├── userController.js
│ │ └── authController.js
│ ├── routes/
│ │ ├── userRoutes.js
│ │ └── authRoutes.js
│ ├── middleware/
│ │ ├── auth.js
│ │ ├── validate.js
│ │ └── errorHandler.js
│ ├── models/
│ │ └── User.js
│ ├── utils/
│ │ └── helpers.js
│ └── app.js
├── .env
├── .gitignore
├── package.json
└── server.jsKode status HTTP yang umum digunakan dalam response API.
| Code | Meaning |
|---|---|
| 200 | OK - Success |
| 201 | Created - Resource created |
| 204 | No Content - Success, no response body |
| 400 | Bad Request - Invalid input |
| 401 | Unauthorized - Not authenticated |
| 403 | Forbidden - Not authorized |
| 404 | Not Found - Resource not found |
| 409 | Conflict - Duplicate resource |
| 422 | Unprocessable Entity - Validation failed |
| 500 | Internal Server Error - Server error |
Cara deploy aplikasi Express ke production menggunakan PM2.
# Install PM2
npm install -g pm2
# Start app
pm2 start server.js --name my-app
# Auto-restart on crash
pm2 startup
pm2 save
# Monitor
pm2 monit
# Logs
pm2 logs
Daftar praktik terbaik yang harus diikuti untuk membuat aplikasi Express yang berkualitas.
NODE_ENV=productionLink-link berguna untuk belajar Express.js lebih dalam.
Happy building!