Menjalankan Skrip, process.argv & process.env
REPL, menjalankan berkas, membaca argumen baris perintah dan variabel lingkungan, serta kode keluar.
Dua cara menjalankan Node
- REPL (Read-Eval-Print Loop): ketik
nodetanpa argumen, lalu coba kode satu per satu. Keluar dengan Ctrl+D atau.exit. - Skrip: simpan kode di
app.jslalunode app.js.
$ node
> 7 * 6
42
> [1,2,3].map(n => n * 2)
[ 2, 4, 6 ]
Opsi berguna: node --watch app.js (jalan ulang otomatis saat berkas berubah), node --env-file=.env app.js (memuat variabel dari berkas .env), node --check app.js (cek sintaks).
Objek process
process adalah objek global yang menggambarkan proses Node yang sedang berjalan. Beberapa anggotanya yang paling sering dipakai:
| Anggota | Isi |
|---|---|
process.argv | Array argumen baris perintah |
process.env | Variabel lingkungan |
process.cwd() | Folder kerja saat ini |
process.platform | 'linux', 'darwin', 'win32' |
process.version | Versi Node |
process.exit(kode) | Menghentikan proses |
process.exitCode | Kode keluar saat proses selesai wajar |
Argumen baris perintah
node salam.js Dina 25
console.log(process.argv);
// [ '/usr/local/bin/node', '/proyek/salam.js', 'Dina', '25' ]
Dua elemen pertama selalu path Node dan path skrip, jadi argumen milikmu mulai dari indeks 2: process.argv.slice(2) → ['Dina', '25']. Perhatikan: semua argumen berupa string; ubah ke angka dengan Number('25').
Variabel lingkungan
Cara standar memberi konfigurasi ke aplikasi tanpa menulisnya di kode — terutama yang rahasia (password database, kunci API):
PORT=8080 NODE_ENV=production node server.js
const port = process.env.PORT || 3000; // nilai selalu string atau undefined
const isProd = process.env.NODE_ENV === 'production';
Simpan rahasia di berkas .env (dan masukkan ke .gitignore!). Node 20.6+ bisa memuatnya langsung: node --env-file=.env app.js.
Kode keluar (exit code)
Setiap proses berakhir dengan kode: 0 = sukses, selain 0 = gagal. Skrip otomasi, CI/CD, dan shell menggunakannya untuk mengetahui apakah perintah berhasil.
if (!process.argv[2]) {
console.error('Pemakaian: node salam.js <nama>');
process.exit(1); // keluar segera dengan kode gagal
}
process.exitCode = 0; // atau biarkan program selesai wajar
process.exit() menghentikan proses seketika, termasuk pekerjaan async yang belum selesai; lebih baik atur process.exitCode dan biarkan Node berhenti sendiri bila memungkinkan.
stdout dan stderr
console.log menulis ke stdout; console.error ke stderr. Pisahkan keduanya agar keluaran normal bisa di-pipe tanpa tercampur pesan error.