Latihan 1 dari materi Arsitektur & Best Practices di Node.js — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Pisahkan logika data dari handler dengan pola controller + service.
Kode awal sudah punya array users (Budi id 1, Siti id 2, Andi id 3), userService.getAll() yang mengembalikan semua user, userController.list() yang mencetak GET /users -> 3 users ditemukan, dan tiga panggilan di bawah: userController.list(), userController.detail(2), userController.detail(99). Semuanya biarkan.
- Lengkapi
userService.getById(id): cari dengan users.find((u) => u.id === id) dan kembalikan hasilnya, atau null kalau gak ada. Service cuma mencari dan mengembalikan, gak mencetak apa pun.
- Lengkapi
userController.detail(id): kalau user ketemu, cetak "GET /users/" + id + " -> " + JSON.stringify(user); kalau gak, cetak "GET /users/" + id + " -> 404 Not Found".
Output yang diharapkan:
GET /users -> 3 users ditemukan
GET /users/2 -> {"id":2,"name":"Siti"}
GET /users/99 -> 404 Not Found
Yang dinilai: output memuat Siti dan 404 Not Found, kodenya menulis 404 dan memanggil users.find( (atau filter/findIndex), dan userService benar-benar mencari: getById(3).name adalah Andi, getById(7) gak mengembalikan apa pun, dan getAll().length tetap 3.