Latihan 1 dari materi Deploy Node.js di Node.js — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Simulasikan dua hal yang dicek saat deploy: health check dan graceful shutdown.
Kode awal sudah punya appVersion = "1.0.0", appEnv = "production", healthCheck() yang mengembalikan object { status: "ok", version: appVersion, environment: appEnv }, gracefulShutdown() yang mencetak tiga baris, dan di bawahnya baris yang mencetak Health check: plus JSON.stringify(healthCheck()), lalu memanggil gracefulShutdown(). Biarkan semuanya, lalu:
- Di
gracefulShutdown(), tukar dua baris tengahnya supaya Menutup HTTP server... tercetak sebelum Menutup koneksi database.... Urutan ini ikut dinilai, karena ini urutan yang benar: server berhenti menerima request dulu, database ditutup terakhir.
- Masih di dalam
gracefulShutdown(), tambahkan baris penutup console.log("Server berhasil di-shutdown");.
Output yang diharapkan:
Health check: {"status":"ok","version":"1.0.0","environment":"production"}
Menerima signal SIGTERM...
Menutup HTTP server...
Menutup koneksi database...
Server berhasil di-shutdown
Yang dinilai: kelima baris output persis seperti di atas, berurutan (jadi Menutup HTTP server... sebelum Menutup koneksi database...); kodenya punya return { ... status ... } dan sebuah function bernama ...shutdown. Lalu kodemu dijalankan lagi: healthCheck() harus memberi status, version dan environment yang bisa dibaca satu per satu (ok|1.0.0|production), dan memanggil gracefulShutdown() sekali lagi harus mencetak Server berhasil di-shutdown lagi. Jadi baris penutupnya di dalam function, bukan di bawah pemanggilannya.