Modul Bawaan: path, url, os

Mengelola jalur berkas lintas sistem operasi dengan path, mengurai URL, dan membaca info sistem dengan os.

Part 5 dari 24 ± 30 menit Gratis

Baterai sudah termasuk

Node membawa puluhan modul bawaan (core modules) yang tidak perlu di-install: fs, path, os, http, crypto, events, stream, util, dan lainnya. Muat dengan require('path') atau import path from 'node:path'.

path: jangan menyambung jalur dengan string biasa

Windows memakai \, Linux/macOS memakai /. Menyambung jalur dengan + '/' + mudah salah (garis miring ganda, titik-titik). Modul path menanganinya:

const path = require('path');

path.join('/app', 'logs', '..', 'data', 'x.json');   // '/app/data/x.json'  (menyambung & merapikan)
path.resolve('data', 'x.json');                      // jalur ABSOLUT dari folder kerja
path.basename('/app/laporan/data.csv');              // 'data.csv'
path.basename('/app/laporan/data.csv', '.csv');      // 'data'
path.extname('foto.final.png');                      // '.png'
path.dirname('/app/laporan/data.csv');               // '/app/laporan'
path.parse('/app/laporan/data.csv');
// { root: '/', dir: '/app/laporan', base: 'data.csv', ext: '.csv', name: 'data' }
path.isAbsolute('/a/b');                             // true
path.relative('/app/a', '/app/b/c');                 // '../b/c'

join vs resolve

  • join hanya menyambung potongan dan merapikan ../.; hasilnya bisa relatif.
  • resolve bekerja seperti "cd" berurutan sampai menghasilkan jalur absolut (dimulai dari folder kerja bila tak ada yang absolut).

__dirname dan jalur berkas

Jalur relatif seperti './data.json' dihitung dari folder tempat perintah dijalankan, bukan folder berkas skrip. Agar tidak tersesat, susun dari __dirname:

const berkas = path.join(__dirname, 'data', 'produk.json');

Di ESM: path.join(import.meta.dirname, 'data', 'produk.json') (Node 20.11+).

url: URL dan URLSearchParams

URL adalah kelas global (sama dengan di browser):

const u = new URL('https://toko.id:8080/produk/sepatu?warna=hitam&ukuran=42#detail');
u.hostname;                 // 'toko.id'
u.port;                     // '8080'
u.pathname;                 // '/produk/sepatu'
u.searchParams.get('warna') // 'hitam'
u.searchParams.set('ukuran', '43');
u.search;                   // '?warna=hitam&ukuran=43'

os: informasi sistem

const os = require('os');
os.platform();   // 'linux'
os.cpus().length; // jumlah inti CPU
os.totalmem();   // memori total (byte)
os.homedir();    // folder rumah pengguna
os.EOL;          // pemisah baris OS ('\n' atau '\r\n')

util: alat bantu

util.format, util.inspect (cara console.log mencetak objek), dan util.promisify (mengubah fungsi ber-callback menjadi Promise; dibahas di bab async).

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X