Matawebsite Promo Lebaran 2022

Cara Menulis dan Menjalankan Program Pertama Anda di Node.js

date 22 Jun 2021
date Lev Yasin
date 1835
date Web Programming
Cara Menulis dan Menjalankan Program Pertama Anda di Node.js

Dalam tutorial ini Anda akan membuat program pertama Anda dengan runtime Node.js. Anda akan diperkenalkan dengan beberapa konsep khusus Node dan membangun jalan Anda untuk membuat program yang membantu pengguna memeriksa variabel environment di sistem mereka. Untuk melakukannya, Anda akan mempelajari cara mengeluarkan string ke konsol, menerima input dari pengguna, dan mengakses variabel environment.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda memerlukan:

Langkah 1 — Mengeluarkan ke Konsol

Untuk menulis "Halo, Dunia!" program, buka editor teks baris perintah seperti nanodan buat file baru:

  • nano hello.js 
Dengan editor teks terbuka, masukkan kode berikut:

halo.js

console.log("Hello World");
console : objek dalam Node.js menyediakan metode sederhana untuk menulis untuk stdoutstderr, atau ke sungai Node.js lainnya, yang dalam banyak kasus adalah baris perintah. The logMetode mencetak ke stdoutsungai, sehingga Anda dapat melihatnya di konsol Anda.

Dalam konteks Node.js, stream adalah objek yang dapat menerima data, seperti stdoutstream, atau objek yang dapat mengeluarkan data, seperti soket jaringan atau file. Dalam kasus stdoutdan stderraliran, data apa pun yang dikirim ke mereka kemudian akan ditampilkan di konsol. Salah satu hal hebat tentang stream adalah mudah dialihkan, dalam hal ini Anda dapat mengarahkan output program Anda ke file, misalnya.

Simpan dan keluar nanodengan menekan CTRL+X, ketika diminta untuk menyimpan file, tekan Y. Sekarang program Anda siap dijalankan.

Langkah 2 — Menjalankan Program

Untuk menjalankan program ini, gunakan nodeperintah sebagai berikut:

  • node hello.js 

hello.js : Program akan mengeksekusi dan menampilkan output berikut:

Output

Hello World

Interpreter Node.js membaca file dan dieksekusi console.log("Hello World");dengan memanggil logmetode consoleobjek global . The String "Hello World" disahkan sebagai argumen ke logfungsi.

Meskipun tanda kutip diperlukan dalam kode untuk menunjukkan bahwa teks adalah string, mereka tidak dicetak ke layar.

Setelah memastikan bahwa program berfungsi, mari kita buat lebih interaktif.

Langkah 3 — Menerima Input Pengguna melalui Argumen Baris Perintah

Setiap kali Anda menjalankan Node.js "Halo, Dunia!" program, itu menghasilkan output yang sama. Untuk membuat program lebih dinamis, mari kita mendapatkan masukan dari pengguna dan menampilkannya di layar.

Alat baris perintah sering menerima berbagai argumen yang mengubah perilakunya. Misalnya, menjalankan nodedengan --versionargumen mencetak versi yang diinstal alih-alih menjalankan penerjemah. Pada langkah ini, Anda akan membuat kode Anda menerima input pengguna melalui argumen baris perintah.

Buat file baru arguments.jsdengan nano:

  • nano arguments.js  

Masukkan kode berikut:

argumen.js

console.log(process.argv);

process : objek adalah global yang objek Node.js yang berisi fungsi dan data semua yang berhubungan dengan proses Node.js sedang berjalan. The argvproperti adalah array yang string yang berisi semua argumen baris perintah yang diberikan kepada program.

Simpan dan keluar nanodengan mengetik CTRL+X, ketika diminta untuk menyimpan file, tekan Y.

Sekarang ketika Anda menjalankan program ini, Anda memberikan argumen baris perintah seperti ini:

  • node arguments.js hello world 

Outputnya terlihat seperti berikut:

Output

[ '/usr/bin/node', '/home/sammy/first-program/arguments.js', 'hello', 'world' ]

Argumen pertama dalam process.argvarray selalu merupakan lokasi biner Node.js yang menjalankan program. Argumen kedua selalu merupakan lokasi file yang sedang dijalankan. Argumen yang tersisa adalah apa yang dimasukkan pengguna, dalam hal ini: hellodan world.

Kami sebagian besar tertarik pada argumen yang dimasukkan pengguna, bukan argumen default yang disediakan Node.js. Buka arguments.js file untuk diedit:

  • nano arguments.js 

Ubah console.log(process.arg); menjadi berikut:

argumen.js
console.log(process.argv.slice(2));

Karena argvmerupakan array, Anda dapat menggunakan slicemetode bawaan JavaScript yang mengembalikan pilihan elemen. Saat Anda menyediakan slicefungsi dengan 2argumennya, Anda mendapatkan semua elemen argvyang muncul setelah elemen keduanya; yaitu, argumen yang dimasukkan pengguna.

Jalankan kembali program dengan nodeperintah dan argumen yang sama seperti terakhir kali:

  • node arguments.js hello world 

Sekarang, outputnya terlihat seperti ini:

Output

[ 'hello', 'world' ]

Sekarang Anda dapat mengumpulkan input dari pengguna, mari kumpulkan input dari environment program.

Langkah 4 — Mengakses Variabel Environment

Variabel environment adalah data nilai kunci yang disimpan di luar program dan disediakan oleh OS. Mereka biasanya diatur oleh sistem atau pengguna dan tersedia untuk semua proses yang berjalan untuk tujuan konfigurasi atau status. Anda dapat menggunakan objek Node processuntuk mengaksesnya.

Gunakan nanountuk membuat file baru environment.js:

  • nano environment.js 

Tambahkan kode berikut:

environment.js

console.log(process.env);

The envobjek toko semua variabel environment yang tersedia saat Node.js menjalankan program.

Simpan dan keluar seperti sebelumnya, dan jalankan environment.js file dengan node perintah.

  • node environment.js 

Setelah menjalankan program, Anda akan melihat output yang mirip dengan berikut:

Output

{ SHELL: '/bin/bash', SESSION_MANAGER: 'local/digitalocean:@/tmp/.ICE-unix/1003,unix/digitalocean:/tmp/.ICE-unix/1003', COLORTERM: 'truecolor', SSH_AUTH_SOCK: '/run/user/1000/keyring/ssh', XMODIFIERS: '@im=ibus', DESKTOP_SESSION: 'ubuntu', SSH_AGENT_PID: '1150', PWD: '/home/sammy/first-program', LOGNAME: 'sammy', GPG_AGENT_INFO: '/run/user/1000/gnupg/S.gpg-agent:0:1', GJS_DEBUG_TOPICS: 'JS ERROR;JS LOG', WINDOWPATH: '2', HOME: '/home/sammy', USERNAME: 'sammy', IM_CONFIG_PHASE: '2', LANG: 'en_US.UTF-8', VTE_VERSION: '5601', CLUTTER_IM_MODULE: 'xim', GJS_DEBUG_OUTPUT: 'stderr', LESSCLOSE: '/usr/bin/lesspipe %s %s', TERM: 'xterm-256color', LESSOPEN: '| /usr/bin/lesspipe %s', USER: 'sammy', DISPLAY: ':0', SHLVL: '1', PATH: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', DBUS_SESSION_BUS_ADDRESS: 'unix:path=/run/user/1000/bus', _: '/usr/bin/node', OLDPWD: '/home/sammy' }

Ingatlah bahwa banyak variabel environment yang Anda lihat bergantung pada konfigurasi dan pengaturan sistem Anda, dan output Anda mungkin terlihat sangat berbeda dari apa yang Anda lihat di sini. Daripada melihat daftar panjang variabel environment, Anda mungkin ingin mengambil yang spesifik.

Langkah 5 — Mengakses Variabel Environment Tertentu

Pada langkah ini Anda akan melihat variabel environment dan nilainya menggunakan process.envobjek global dan mencetak nilainya ke konsol.

The process.envobjek adalah pemetaan sederhana antara nama-nama variabel environment dan nilai-nilai mereka disimpan sebagai string. Seperti semua objek dalam JavaScript , Anda mengakses properti individual dengan mereferensikan namanya dalam tanda kurung siku.

Buka environment.jsfile untuk diedit:

  • nano environment.js  

Ubah console.log(process.env);ke:

environment.js

console.log(process.env["HOME"]);
Simpan file dan keluar. Sekarang jalankan environment.jsprogramnya:
  • node environment.js  

Outputnya sekarang terlihat seperti ini:

Output

/home/sammy

Alih-alih mencetak seluruh objek, Anda sekarang hanya mencetak HOMEproperti dari process.env, yang menyimpan nilai $HOME variabel environment.

Sekali lagi, perlu diingat bahwa keluaran dari kode ini kemungkinan akan berbeda dari yang Anda lihat di sini karena khusus untuk sistem Anda. Sekarang Anda dapat menentukan variabel environment yang akan diambil, Anda dapat meningkatkan program Anda dengan menanyakan variabel yang ingin mereka lihat kepada pengguna.

Langkah 6 — Mengambil Argumen sebagai Respons terhadap Masukan Pengguna

Selanjutnya, Anda akan menggunakan kemampuan untuk membaca argumen baris perintah dan variabel environment untuk membuat utilitas baris perintah yang mencetak nilai variabel environment ke layar.

Gunakan nanountuk membuat file baru echo.js:

  • nano echo.js 

Tambahkan kode berikut:

echo.js

const args = process.argv.slice(2);
console.log(process.env[args[0]]);

Baris pertama echo.jsmenyimpan semua argumen baris perintah yang diberikan pengguna ke dalam variabel konstan yang disebut args. Baris kedua mencetak variabel environment yang disimpan dalam elemen pertama dari args; yaitu, argumen baris perintah pertama yang diberikan pengguna.

Simpan dan keluar nano, lalu jalankan program sebagai berikut:

  • node echo.js HOME 

Sekarang, outputnya akan menjadi:

Output

/home/sammy

Argumen HOMEdisimpan ke argsarray, yang kemudian digunakan untuk menemukan nilainya di environment melalui process.envobjek.

Pada titik ini Anda sekarang dapat mengakses nilai variabel environment apa pun di sistem Anda. Untuk memverifikasi ini, coba lihat variabel berikut: PWDUSERPATH.

Mengambil variabel tunggal itu baik, tetapi membiarkan pengguna menentukan berapa banyak variabel yang mereka inginkan akan lebih baik.

Langkah 7 — Melihat Beberapa Variabel Environment

Saat ini, aplikasi hanya dapat memeriksa satu variabel environment dalam satu waktu. Akan berguna jika kita dapat menerima beberapa argumen baris perintah dan mendapatkan nilai yang sesuai di environment. Gunakan nanountuk mengedit echo.js:

  • nano echo.js

Edit file sehingga memiliki kode berikut sebagai gantinya:

echo.js

const args = process.argv.slice(2);

args.forEach(arg => {
  console.log(process.env[arg]);
});

The forEachMetode adalah metode JavaScript standar pada semua objek array yang. Ia menerima fungsi panggilan balik yang digunakan saat ia mengulangi setiap elemen array. Anda menggunakan forEachpada argsarray, menyediakan sebuah fungsi callback yang mencetak nilai argumen saat ini di environment.

Simpan dan keluar dari file. Sekarang jalankan kembali program dengan dua argumen:

  • node echo.js HOME PWD

Anda akan melihat output berikut:

Output

/home/sammy /home/sammy/first-program

The forEachFungsi memastikan bahwa setiap perintah baris argumen dalam argsarray dicetak.

Sekarang Anda memiliki cara untuk mengambil variabel yang diminta pengguna, tetapi kami masih perlu menangani kasus di mana pengguna memasukkan data yang buruk.

Langkah 8 — Menangani Masukan Tidak Terdefinisi

Untuk melihat apa yang terjadi jika Anda memberikan argumen kepada program yang bukan merupakan variabel environment yang valid, jalankan perintah berikut:

  • node echo.js HOME PWD NOT_DEFINED 

Outputnya akan terlihat seperti berikut:

Output

/home/sammy /home/sammy/first-program undefined

Dua baris pertama dicetak seperti yang diharapkan, dan baris terakhir hanya memiliki undefined. Dalam JavaScript, undefinednilai berarti variabel atau properti belum diberi nilai. Karena NOT_DEFINEDbukan variabel environment yang valid, ini ditampilkan sebagai undefined.

Akan lebih membantu pengguna untuk melihat pesan kesalahan jika argumen baris perintah mereka tidak ditemukan di environment.

Buka echo.js untuk diedit:

  • nano echo.js 

Edit echo.jssehingga memiliki kode berikut:

echo.js

const args = process.argv.slice(2);

args.forEach(arg => {
  let envVar = process.env[arg];
  if (envVar === undefined) {
    console.error(`Could not find "${arg}" in environment`);
  } else {
    console.log(envVar);
  }
});

Di sini, Anda telah memodifikasi fungsi panggilan balik yang disediakan forEachuntuk melakukan hal-hal berikut:

  1. Dapatkan nilai argumen baris perintah di environment dan simpan dalam variabel envVar.
  2. Periksa apakah nilainya envVaradalah undefined.
  3. Jika envVaradalah undefined, maka kami mencetak pesan bermanfaat yang menunjukkan bahwa itu tidak dapat ditemukan.
  4. Jika variabel environment ditemukan, kami mencetak nilainya.

Catatan : console.errorFungsi ini mencetak pesan ke layar melalui stderraliran, sedangkan console.logmencetak ke layar melalui stdoutaliran. Saat Anda menjalankan program ini melalui baris perintah, Anda tidak akan melihat perbedaan antara aliran stdoutdan stderr, tetapi praktik yang baik adalah mencetak kesalahan melalui stderraliran sehingga lebih mudah diidentifikasi dan diproses oleh program lain, yang dapat memberi tahu perbedaan.

Sekarang jalankan perintah berikut sekali lagi:

  • node echo.js HOME PWD NOT_DEFINED 

Kali ini outputnya adalah:

Output

/home/sammy /home/sammy/first-program Could not find "NOT_DEFINED" in environment

Sekarang ketika Anda memberikan argumen baris perintah yang bukan merupakan variabel environment, Anda mendapatkan pesan kesalahan yang jelas yang menyatakan demikian.

Matawebsite Promo
lev_yasin.png

Lev Yasin

Instruktur Web Programming Mataweb

Sangat tertarik dengan dunia Pemrograman Web & Mobile, saat ini fokus pada bagian Backend Web Developer, menggunakan PHP sebagai bahasa pemrograman utama, biasanya saya menggunakan Laravel.

Artikel Populer

Halo, ada yang bisa kami bantu?
Daftar Sekarang