Cara Mengurangkan Argumen Barisan Perintah di Node.js
- 4063
- 251
- Jerome Quitzon
Nod.JS adalah rangka kerja I/O berasaskan acara, terbuka, dan asynchronous yang menggunakan enjin JavaScript Google. Kami menggunakannya untuk membangunkan aplikasi yang menggunakan JavaScript di sisi pelayan dan klien. Nod.Aplikasi JS ditulis dalam JavaScript.
Nod.Aplikasi JS juga menerima hujah baris arahan seperti bahasa pengaturcaraan lain. Secara lalai, nod.JS dapat mengendalikan hujah anda tetapi jika anda mahukan beberapa ciri tambahan maka anda boleh menggunakan alat dan pakej pihak ketiga seperti Yargs
dan minimist
. Dalam artikel ini, kita akan melihat bagaimana anda dapat menghuraikan argumen baris perintah dalam nod.js menggunakan proses.argv
, Yargs
, dan minimist
.
Apakah argumen baris arahan?
Hujah baris arahan adalah rentetan maklumat tambahan atau arahan yang dimasukkan ke dalam program semasa menjalankannya melalui antara muka baris arahan (CLI) OS OS. Hujah -hujah ini biasanya termasuk maklumat yang digunakan untuk menetapkan nilai harta atau konfigurasi untuk aplikasi.
Dalam nod.JS, semua hujah baris arahan yang diberikan kepada shell dikemukakan kepada proses dalam array yang disebut 'Nilai Argumen (Argv).'Kemudian nod.JS menggunakan array ini untuk setiap proses berjalan dalam bentuk proses.argv atau anda boleh mengatakan argumen secara lalai disimpan dalam proses.argv.
Mengapa menggunakan argumen baris arahan?
Argumen baris arahan sangat fleksibel kerana ia diluluskan sebagai rentetan kepada program dan jenis data rentetan anda dengan mudah boleh ditukar kepada jenis lain.
Ia membolehkan anda menyampaikan maklumat kepada permohonan sebelum ia bermula dan juga anda boleh lulus bilangan argumen yang tidak terhad melalui baris arahan.
Apa contoh sintaks argumen baris arahan?
Berikut adalah contoh sintaks, bagaimana argumen baris perintah kelihatan seperti:
[runtime] [script_name] [argumen-1 argumen-2 argumen-3 ... argumen-n]
Argumen dipisahkan oleh ruang dan runtime boleh menjadi seperti sh, java, nod, dll.
Cara Mengurangkan Argumen Barisan Perintah di Node.js
Di sini kita akan terlebih dahulu melihat untuk menghuraikan hujah menggunakan proses.argv
dan kemudian dengan Yargs
dan minimist
.
1. Hujah Argumen Menggunakan Proses.argv
Menggunakan proses.argv
adalah cara paling mudah untuk menghuraikan hujah dalam nod.JS dan anda tidak perlu memasang pakej atau perpustakaan tambahan untuk itu. Anda hanya lulus argumen ke nod.Permohonan JS dan hujah -hujah ini dikendalikan oleh proses.argv
Secara lalai.
Terdapat tiga elemen proses utama.array argv:
- Pertama, laluan sistem fail menunjuk ke nod yang boleh dilaksanakan.
- Kedua nama fail JavaScript yang sedang dilaksanakan.
- Ketiga, hujah pertama yang diluluskan oleh pengguna.
Contoh - Kami akan menulis skrip nod mudah yang akan mencetak semua argumen baris arahan yang dihantar ke aplikasi.
- Buat fail yang dinamakan 'ProcessArgv.js ' dan tampal kod berikut. 'Gunakan ketat'; untuk (biarkan j = 0; j ' + (proses.argv [j]));
1234 'Gunakan ketat'; untuk (biarkan j = 0; j < process.argv.length; j++) console.log(j + ' -> ' + (proses.argv [j])); - Sekarang jalankan 'ProcessArgv.js 'menggunakan arahan berikut dengan lulus hujah.
Node ProcessArgv.js saya nod
Di sini kita lulus tiga hujah ke fail dan sebagai hasilnya, anda akan melihat bahawa 'i', 'am', 'node' disimpan pada indeks ke -2, ke -3, dan ke -4 masing -masing. Dan outputnya akan kelihatan seperti ini:
2. Lulus hujah menggunakan benang
Yargs adalah nod.modul js yang dapat membantu anda dalam lulus hujah. Ia membolehkan anda lulus argumen dalam bentuk pasangan nilai kunci dan anda juga boleh mengakses nilai argumen kemudian dalam program menggunakan kunci.
- Pasang modul Yargs menggunakan arahan ini.
npm i Yargs
- Sekarang simpan kod di bawah dalam fail yang dinamakan 'Yargs.js ' Dan semasa melaksanakan program ini, kami akan memberikan nilai untuk nama dan umur. 'Gunakan ketat'; const args = memerlukan ('yargs').argv; konsol.log ('Nama:' + args.nama); konsol.log ('umur:' + args.umur);
123456 'Gunakan ketat'; const args = memerlukan ('yargs').argv; konsol.log ('Nama:' + args.nama); konsol.log ('umur:' + args.umur); - Untuk melaksanakan arahan berikut, laksanakan kod berikut dalam arahan anda. Kami menyampaikan nilai untuk nama dan umur.
Node Yargs.JS --Name = Node --age = 15
Output akan kelihatan seperti ini:
Untuk memahami ciri -ciri yang lebih canggih Yargs
Lawati Panduan Lanjutan ini.
3. Argumen Parsing Menggunakan Modul Minimis
Cara lain untuk menguraikan hujah baris perintah ke nod.Aplikasi JS adalah dengan menggunakan modul minimis. Ia mengutuk hujah dari proses.array argv dan kemudian memindahkannya ke dalam array bersekutu yang mudah digunakan. Arahan bersekutu ini boleh digunakan untuk mengakses unsur -unsur menggunakan nama indeks.
- Pasang modul minimis dengan menggunakan arahan ini.
npm i minimist
- Sekarang simpan skrip berikut yang dinamakan 'Minimist.js '. Di sini kita menggunakan kaedah slice yang akan mengeluarkan semua elemen array sebelumnya bermula dari indeks yang diserahkan kepadanya sebagai parameter. 'Gunakan ketat'; const args = memerlukan ('minimist') (proses.argv.slice (2)); konsol.log (args.i); konsol.log (args.n);
123456 'Gunakan ketat'; const args = memerlukan ('minimist') (proses.argv.slice (2)); konsol.log (args.i); konsol.log (args.n); - Semasa meluluskan hujah, kita juga boleh menentukan watak yang kita mahu mengakses unsur -unsur. Di sini kita akan menentukan 'I' sebagai nama untuk indeks kedua dan kemudian 'n' sebagai nama untuk indeks ketiga. Seperti ini:
nod minimist.js -i nod -n 15
Output akan kelihatan seperti ini:
Walaupun minimist
tidak mempunyai banyak ciri yang kaya seperti Yargs
Masih anda boleh menggunakannya untuk memudahkan kerja anda. Untuk maklumat lebih terperinci mengenai lawatan minimis di sini.
Kesimpulan
Parsing argumen adalah topik yang mudah dan penting jika anda bekerja di simpul.js. Terdapat banyak pilihan yang tersedia untuk menjadikan kerja anda mudah. Oleh itu, pilih mengikut keperluan anda jika anda mahukan ciri -ciri yang kaya dan canggih kemudian pergi bersama Yargs
jika tidak pilih dari proses.argv
dan minimist
.