Apakah Anda ingin mempelajari cara membuat permintaan GET di Node.js? Jika ya, maka Anda berada di tempat yang tepat. Dalam postingan blog ini, saya akan menunjukkan cara menggunakan modul http
bawaan dan pustaka axios
populer untuk membuat permintaan GET di Node.js. Saya juga akan menjelaskan apa itu permintaan GET, mengapa penting, dan cara menangani data respons. Pada akhir postingan ini, Anda akan dapat membuat permintaan GET di Node.js seperti seorang profesional.
Apa itu Permintaan GET?
Permintaan GET adalah salah satu jenis permintaan HTTP yang paling umum. HTTP adalah singkatan dari Hypertext Transfer Protocol, yang merupakan protokol standar untuk komunikasi antara peramban web dan server web. Permintaan HTTP adalah pesan yang dikirim peramban web ke server web untuk meminta atau mengirimkan data. Respons HTTP adalah pesan yang dikirim kembali server web ke peramban web untuk mengirimkan data yang diminta atau mengonfirmasi pengiriman.
Permintaan GET adalah jenis permintaan HTTP yang meminta server web untuk mengirimkan kembali sumber daya tertentu. Misalnya, saat Anda mengetik URL di peramban web Anda, Anda membuat permintaan GET ke server web untuk mengirimkan halaman web yang terkait dengan URL tersebut. Permintaan GET juga dapat menyertakan beberapa parameter kueri, yang merupakan pasangan kunci-nilai yang memberikan informasi tambahan atau memfilter sumber daya yang diminta. Misalnya, saat Anda mencari sesuatu di Google, Anda membuat permintaan GET ke server web Google dengan beberapa parameter kueri yang menentukan istilah pencarian, bahasa, dan opsi lainnya.
Mengapa Permintaan GET Penting?
Permintaan GET penting karena merupakan cara utama untuk mengambil data dari server web. Anda dapat menggunakan permintaan GET untuk mengakses berbagai jenis data, seperti HTML, JSON, XML, gambar, video, dan lainnya. Anda juga dapat menggunakan permintaan GET untuk berinteraksi dengan API web, yang merupakan antarmuka yang memungkinkan Anda mengakses data dan layanan dari aplikasi web lain. Misalnya, Anda dapat menggunakan permintaan GET untuk mendapatkan informasi cuaca dari OpenWeatherMap API, mendapatkan informasi film dari IMDb API, atau mendapatkan gambar anjing dari Dog API.
Permintaan GET juga penting karena mudah digunakan dan diuji. Anda dapat membuat permintaan GET menggunakan peramban web apa pun, tanpa alat atau pustaka khusus. Anda juga dapat menggunakan alat seperti Postman atau Apidog untuk membuat dan menguji permintaan GET dengan parameter dan header yang berbeda. Anda juga dapat memeriksa data respons dan header menggunakan alat pengembang peramban atau antarmuka alat.
Apa itu NodeJs?
Node.js adalah lingkungan runtime JavaScript yang memungkinkan Anda menjalankan kode JavaScript di luar peramban web. Node.js didasarkan pada mesin JavaScript V8 Google Chrome, dan digunakan untuk membangun aplikasi web, terutama yang intensif data dan real-time. Node.js juga memiliki pustaka modul dan paket yang besar yang dapat Anda gunakan untuk menambahkan fungsionalitas ke proyek Anda. Beberapa manfaat dari Node.js adalah:
- Cepat dan terukur, berkat sifat asinkron dan berbasis peristiwa.
- Lintas platform dan sumber terbuka, yang berarti Anda dapat menjalankannya di berbagai sistem operasi dan berkontribusi pada pengembangannya.
- Konsisten dan terpadu, karena Anda dapat menggunakan bahasa yang sama untuk front-end dan back-end aplikasi web Anda.

Cara Membuat Permintaan GET di Node.js Menggunakan Modul http
?
Node.js adalah lingkungan runtime JavaScript yang memungkinkan Anda menjalankan kode JavaScript di luar peramban web. Node.js sering digunakan untuk membuat server web, aplikasi web, dan API web. Node.js juga menyediakan modul http
bawaan yang memungkinkan Anda membuat permintaan dan respons HTTP.
Untuk membuat permintaan GET di Node.js menggunakan modul http
, Anda perlu mengikuti langkah-langkah berikut:
- Impor modul
http
menggunakan fungsirequire
. - Buat objek
options
yang berisi informasi tentang permintaan GET, seperti nama host, port, jalur, dan header. - Gunakan metode
http.get
untuk membuat permintaan GET, dengan meneruskan objekoptions
sebagai argumen pertama dan fungsi panggilan balik sebagai argumen kedua. Fungsi panggilan balik akan dieksekusi saat respons diterima, dan akan memiliki objekresponse
sebagai parameternya. - Gunakan objek
response
untuk menangani data dan header respons. Objekresponse
adalah instance dari kelashttp.IncomingMessage
, yang mengimplementasikan antarmukaReadableStream
. Ini berarti bahwa Anda dapat menggunakan objekresponse
sebagai aliran data, dan mendengarkan peristiwa sepertidata
,end
, danerror
. Anda juga dapat menggunakan propertiresponse.statusCode
untuk mendapatkan kode status respons, dan propertiresponse.headers
untuk mendapatkan header respons. - Gunakan metode
response.on
untuk mendaftarkan pendengar peristiwa untuk objekresponse
. Misalnya, Anda dapat menggunakan metoderesponse.on('data', callback)
untuk mendengarkan peristiwadata
, yang akan dipancarkan saat sebagian data diterima. Fungsi panggilan balik akan memiliki objekchunk
sebagai parameternya, yang merupakan buffer data. Anda dapat menggunakan metodechunk.toString()
untuk mengonversi buffer menjadi string, dan menambahkannya ke variabel untuk menyimpan seluruh data respons. Anda juga dapat menggunakan metoderesponse.on('end', callback)
untuk mendengarkan peristiwaend
, yang akan dipancarkan saat respons selesai. Fungsi panggilan balik tidak akan memiliki parameter apa pun, dan Anda dapat menggunakannya untuk melakukan tindakan akhir apa pun, seperti mencatat atau mengurai data respons. Anda juga dapat menggunakan metoderesponse.on('error', callback)
untuk mendengarkan peristiwaerror
, yang akan dipancarkan saat terjadi kesalahan selama respons. Fungsi panggilan balik akan memiliki objekerror
sebagai parameternya, dan Anda dapat menggunakannya untuk menangani kesalahan, seperti mencatat atau melemparnya.
Berikut adalah contoh cara membuat permintaan GET di Node.js menggunakan modul http
:
// Impor modul http
const http = require('http');
// Buat objek opsi
const options = {
hostname: 'api.openweathermap.org',
port: 80,
path: '/data/2.5/weather?q=Los%20Angeles&appid=YOUR_API_KEY',
headers: {
'User-Agent': 'Node.js'
}
};
// Buat permintaan GET
http.get(options, (response) => {
// Inisialisasi variabel untuk menyimpan data respons
let data = '';
// Dengarkan peristiwa data
response.on('data', (chunk) => {
// Tambahkan potongan ke variabel data
data += chunk.toString();
});
// Dengarkan peristiwa akhir
response.on('end', () => {
// Catat kode status dan header
console.log(`Status code: ${response.statusCode}`);
console.log(`Headers: ${JSON.stringify(response.headers)}`);
// Urai data sebagai JSON
const weather = JSON.parse(data);
// Catat informasi cuaca
console.log(`City: ${weather.name}`);
console.log(`Temperature: ${weather.main.temp}`);
console.log(`Description: ${weather.weather[0].description}`);
});
// Dengarkan peristiwa kesalahan
response.on('error', (error) => {
// Lempar kesalahan
throw error;
});
});
Cara Membuat Permintaan GET di Node.js Menggunakan Pustaka axios
?
Modul http
adalah modul tingkat rendah yang menyediakan fungsionalitas dasar untuk membuat permintaan dan respons HTTP. Namun, jika Anda ingin menggunakan modul tingkat lebih tinggi dan lebih ramah pengguna, Anda dapat menggunakan pustaka axios
. Axios adalah pustaka populer dan kuat yang memungkinkan Anda membuat permintaan HTTP dan menangani respons menggunakan janji dan sintaks async/await. Axios juga mendukung fitur seperti interseptor, transformer, batas waktu, token pembatalan, dan lainnya.
Untuk membuat permintaan GET di Node.js menggunakan pustaka axios
, Anda perlu mengikuti langkah-langkah berikut:
- Instal pustaka
axios
menggunakan perintahnpm
:npm install axios
. - Impor pustaka
axios
menggunakan fungsirequire
. - Gunakan metode
axios.get
untuk membuat permintaan GET, dengan meneruskan URL sumber daya sebagai argumen pertama dan objekconfig
opsional sebagai argumen kedua. Objekconfig
dapat berisi informasi tentang permintaan GET, seperti header, parameter, batas waktu, dan lainnya. Metodeaxios.get
akan mengembalikan janji, yang akan diselesaikan ke objekresponse
atau ditolak ke objekerror
. - Gunakan metode
then
untuk menangani janji yang diselesaikan, dengan meneruskan fungsi panggilan balik sebagai argumen pertama. Fungsi panggilan balik akan memiliki objekresponse
sebagai parameternya, yang berisi data respons, status, header, dan lainnya. Anda dapat menggunakan propertiresponse.data
untuk mengakses data respons, dan propertiresponse.status
untuk mengakses kode status respons. Anda juga dapat menggunakan metodecatch
untuk menangani janji yang ditolak, dengan meneruskan fungsi panggilan balik sebagai argumen pertama. Fungsi panggilan balik akan memiliki objekerror
sebagai parameternya, yang berisi pesan kesalahan, kode, permintaan, dan respons. Anda dapat menggunakan propertierror.response
untuk mengakses objek respons, dan propertierror.request
untuk mengakses objek permintaan. - Atau, Anda dapat menggunakan sintaks
async/await
untuk membuat permintaan GET dan menangani respons. Untuk melakukan ini, Anda perlu menggunakan kata kunciasync
sebelum fungsi yang berisi permintaan GET, dan kata kunciawait
sebelum metodeaxios.get
. Ini akan memungkinkan Anda menulis kode asinkron secara sinkron, dan menetapkan objekresponse
ke variabel. Anda kemudian dapat menggunakan bloktry/catch
untuk menangani kesalahan apa pun yang mungkin terjadi selama permintaan GET.
Berikut adalah contoh cara membuat permintaan GET di Node.js menggunakan pustaka axios
:
// Impor pustaka axios
const axios = require('axios');
// Buat permintaan GET menggunakan metode then
axios.get('http://api.openweathermap.org/data/2.5/weather?q=Los%20Angeles&appid=YOUR_API_KEY', {
headers: {
'User-Agent': 'Node.js'
}
}).then((response) => {
// Catat kode status dan header
console.log(`Status code: ${response.status}`);
console.log(`Headers: ${JSON.stringify(response.headers)}`);
// Catat informasi cuaca
console.log(`City: ${response.data.name}`);
console.log(`Temperature: ${response.data.main.temp}`);
console.log(`Description: ${response.data.weather[0].description}`);
}).catch((error) => {
// Catat pesan dan kode kesalahan
console.log(`Error message: ${error.message}`);
console.log(`Error code: ${error.code}`);
// Catat status dan data respons jika tersedia
if (error.response) {
console.log(`Response status: ${error.response.status}`);
console.log(`Response data: ${JSON.stringify(error.response.data)}`);
}
// Catat metode dan jalur permintaan jika tersedia
if (error.request) {
console.log(`Request method: ${error.request.method}`);
console.log(`Request path: ${error.request.path}`);
}
});
// Buat permintaan GET menggunakan sintaks async/await
async function getWeather() {
try {
// Tunggu permintaan GET dan tetapkan objek respons ke variabel
const response = await axios.get('http://api.openweathermap.org/data/2.5/weather?q=Los%20Angeles&appid=YOUR_API_KEY', {
headers: {
'User-Agent': 'Node.js'
}
});
// Catat kode status dan header
console.log(`Status code: ${response.status}`);
console.log(`Headers: ${JSON.stringify(response.headers)}`);
// Catat informasi cuaca
console.log(`City: ${response.data.name}`);
console.log(`Temperature: ${response.data.main.temp}`);
console.log(`Description: ${response.data.weather[0].description}`);
} catch (error) {
// Catat pesan dan kode kesalahan
console.log(`Error message: ${error.message}`);
console.log(`Error code: ${error.code}`);
// Catat status dan data respons jika tersedia
if (error.response) {
console.log(`Response status: ${error.response.status}`);
console.log(`Response data: ${JSON.stringify(error.response.data)}`);
}
// Catat metode dan jalur permintaan jika tersedia
if (error.request) {
console.log(`Request method: ${error.request.method}`);
console.log(`Request path: ${error.request.path}`);
}
}
}
// Panggil fungsi getWeather
getWeather();
Cara Menangani Data Respons di Node.js?
Setelah Anda membuat permintaan GET di Node.js dan menerima respons, Anda mungkin ingin melakukan sesuatu dengan data respons. Misalnya, Anda mungkin ingin menampilkan data di konsol, menyimpan data ke file, mengurai data sebagai JSON atau XML, atau menggunakan data untuk tujuan lain.
Bergantung pada jenis dan format data respons, Anda mungkin perlu menggunakan metode dan modul yang berbeda untuk menangani data. Berikut adalah beberapa skenario umum dan cara menanganinya:
- Jika data respons adalah string, Anda cukup menggunakan metode
console.log
untuk menampilkan data di konsol, atau metodefs.writeFile
untuk menyimpan data ke file. Modulfs
adalah modul bawaan yang memungkinkan Anda bekerja dengan sistem file di Node.js. Anda dapat mengimpor modulfs
menggunakan fungsirequire
, dan menggunakan metodefs.writeFile
untuk menulis data ke file, dengan meneruskan nama file, data, dan fungsi panggilan balik sebagai argumen. Fungsi panggilan balik akan memiliki objekerror
sebagai parameternya, dan Anda dapat menggunakannya untuk menangani kesalahan apa pun yang mungkin terjadi selama proses penulisan file. - Jika data respons adalah buffer, Anda dapat menggunakan metode
buffer.toString
untuk mengonversi buffer menjadi string, dan kemudian menggunakan metode yang sama seperti di atas untuk menampilkan atau menyimpan data. Buffer adalah tipe data biner yang mewakili urutan byte. Buffer sering digunakan untuk menangani data biner, seperti gambar, video, atau file terkompresi. Anda dapat menggunakan metodebuffer.toString
untuk mengonversi buffer menjadi string, dengan meneruskan argumen pengodean opsional untuk menentukan pengodean karakter string. Pengodean default adalahutf8
, yang merupakan pengodean paling umum untuk data teks. - Jika data respons adalah JSON, Anda dapat menggunakan metode
JSON.parse
untuk mengurai data sebagai objek JavaScript, dan kemudian menggunakan properti dan metode objek untuk mengakses dan memanipulasi data. JSON adalah singkatan dari JavaScript Object Notation, yang merupakan format standar untuk bertukar dan menyimpan data. Data JSON adalah string yang mengikuti sintaks tertentu, yang terdiri dari pasangan kunci-nilai yang diapit oleh kurung kurawal, dan array yang diapit oleh kurung siku. Anda dapat menggunakan metodeJSON.parse
untuk mengurai string JSON sebagai objek JavaScript, dengan meneruskan string JSON sebagai argumen. Metode ini akan mengembalikan objek JavaScript yang dapat Anda gunakan seperti objek lainnya. - Jika data respons adalah XML, Anda dapat menggunakan pustaka
xml2js
untuk mengurai data sebagai objek JavaScript, dan kemudian menggunakan properti dan metode objek untuk mengakses dan memanipulasi data. XML adalah singkatan dari Extensible Markup Language, yang merupakan format standar lain untuk bertukar dan menyimpan data. Data XML adalah string yang mengikuti sintaks tertentu, yang terdiri dari elemen yang diapit oleh tag, atribut yang diapit oleh tanda kutip, dan konten teks. Pustakaxml2js
adalah pustaka pihak ketiga yang memungkinkan Anda mengonversi data XML ke objek JavaScript dan sebaliknya. Anda dapat menginstal pustakaxml2js
menggunakan perintahnpm
:npm install xml2js
. Anda dapat mengimpor pustakaxml2js
menggunakan fungsirequire
, dan menggunakan metodexml2js.parseString
untuk mengurai string XML sebagai objek JavaScript, dengan meneruskan string XML dan fungsi panggilan balik sebagai argumen. Fungsi panggilan balik akan memiliki objekerror
dan objekresult
sebagai parameternya, dan Anda dapat menggunakannya untuk menangani kesalahan apa pun atau mengakses objek yang diurai.
Cara Menguji Permintaan GET HTTP NodeJs Menggunakan Apidog?
Untuk Menguji permintaan GET HTTP menggunakan Apidog, Anda perlu mengikuti langkah-langkah sederhana berikut:
- Buka Apidog dan klik tombol "Permintaan Baru" untuk membuat permintaan baru.

2. Pilih "GET" sebagai metode permintaan.

3. Masukkan URL titik akhir API

Kemudian klik tombol "Kirim" untuk mengirim permintaan ke API.

Seperti yang Anda lihat, Apidog menunjukkan kepada Anda URL, parameter, header, dan isi permintaan, serta status, header, dan isi respons. Anda juga dapat melihat waktu respons, ukuran, dan format permintaan dan respons, dan membandingkannya dengan API web yang berbeda.
Kesimpulan
Dalam postingan blog ini, saya telah menunjukkan cara membuat permintaan GET di Node.js menggunakan modul http
dan pustaka axios
. Saya juga telah menunjukkan cara menangani data respons dalam format dan skenario yang berbeda. Saya harap Anda telah mempelajari sesuatu yang bermanfaat dan menikmati membaca postingan ini.
Terima kasih telah membaca dan selamat membuat kode!