Lompat ke konten utama
←

Backend Node.js Dasar: Rute, Middleware, dan Pengujian

Pelajaran 1 dari 16

Model server: request, respons, dan rute

Server sebagai fungsi: request masuk, respons keluar

Setelah pelajaran ini kamu bisa menjelaskan alur request–respons di Node.js dan menulis handler yang menerima request tiruan lalu mengembalikan { status, headers, body }.

±14 menitDiperiksa 23 Okt 2026

Pelajaran pertama bisa dicoba tanpa akun. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya dan membuka pelajaran berikutnya

Materi

Server web menunggu permintaan dan menjawab setiap permintaan dengan satu respons. Di Node.js, server dibuat dengan createServer dari modul node:http. Fungsi yang diberikan ke createServer disebut request handler; panduan Anatomy of an HTTP Transaction di nodejs.org mencatat fungsi itu dipanggil sekali untuk setiap permintaan, dengan objek request untuk membaca permintaan dan objek response untuk menulis jawaban. Aplikasi Node.js berjalan dalam satu proses, dan selama menunggu disk atau jaringan ia melayani permintaan lain.

import { createServer } from "node:http";

createServer((request, response) => {
  // request.method  → "GET"
  // request.url     → "/menu?cabang=solo" (path beserta query)
  // request.headers → { "user-agent": "...", accept: "..." }, nama huruf kecil
  response.statusCode = 200;
  response.setHeader("Content-Type", "application/json");
  response.end(JSON.stringify({ cabang: "solo", buka: true }));
}).listen(3000);

Dokumentasi API Node.js menyatakan nama header di request.headers selalu huruf kecil, apa pun bentuk yang dikirim klien, sehingga Content-Type dibaca sebagai headers["content-type"]. statusCode bernilai 200 bila tidak diubah, setHeader memasang header, dan end mengirim badan sekaligus menutup respons. Respons yang tidak pernah diakhiri membuat klien menunggu sampai batas waktunya habis.

Kelas ini memakai bentuk yang mudah diuji: handler adalah fungsi biasa handler(req) yang mengembalikan objek { status, headers, body }. Request tiruan berisi method, path, query, headers, dan body (teks mentah). Di aplikasi sungguhan, beberapa baris penghubung mengubah request Node menjadi req, memanggil handler, lalu menulis hasilnya dengan writeHead dan end. Karena handler tidak menyentuh port atau jaringan, setiap latihan menjalankannya langsung di browser-mu.

function json(status, data, headers = {}) {
  return { status, headers: { "content-type": "application/json", ...headers }, body: data };
}

json(200, { cabang: "solo", buka: true });
// → { status: 200, headers: { "content-type": "application/json" }, body: { cabang: "solo", buka: true } }

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Handler Node.js di bawah menyimpan pesanan, lalu selesai tanpa pernah memanggil response.end(). Apa yang dialami aplikasi kasir yang mengirim POST /pesanan?

createServer((request, response) => {
  if (request.method === "POST" && request.url === "/pesanan") {
    simpanPesanan();
    response.statusCode = 201;
  }
}).listen(3000);
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 1 lagi