Node.js 是一個基於事件的開源異步 I/O 框架,使用 Google 的 V8 JavaScript 引擎。用於開發在服務器端和客戶端都使用 JavaScript 的應用程序。 Node.js 應用程序是用 JavaScript 編寫的。
Node.js 應用程序也像任何其他編程語言一樣接受命令行參數。默認情況下,Node.js 可以處理參數,但如果您需要其他功能,可以使用第三方工具和包,例如: yargs
什麼時候 minimist
本文展示瞭如何使用 Node.js 解析命令行參數。 process.argv
, yargs
, 什麼時候 minimist
.
什麼是命令行參數?
命令行參數是通過操作系統的命令行界面 (CLI) 運行程序時傳遞給程序的附加信息或命令字符串。這些參數包含通常用於設置應用程序屬性或配置值的信息。
在 Node.js 中,提供給 shell 的所有命令行參數都以一個名為“參數值(argv)”的數組的形式轉發給進程。 Node.js 然後以 process.argv 的形式為每個正在運行的進程使用這個數組。或者假設參數默認存儲在 process.argv 中。
為什麼使用命令行參數
命令行參數作為字符串傳遞給程序,因此非常靈活,字符串數據類型可以輕鬆轉換為其他類型。
這允許您在應用程序啟動之前將信息傳遞給它。您還可以通過命令行傳遞無限數量的參數。
什麼是命令行參數的語法示例?
以下是命令行參數的示例語法:
[runtime] [script_name] [argument-1 argument-2 argument-3 ... argument-n]
參數以空格分隔,運行時可以是 sh、java、node 等。
如何在 Node.js 中解析命令行參數
現在讓我們先回顧一下解析參數的使用。 process.argv
之後 yargs
什麼時候 minimist
.
1. 使用 process.argv 解析參數
利用 process.argv
是解析 Node.js 中參數的最簡單方法。無需為此安裝其他軟件包或庫。只需將參數傳遞給您的 Node.js 應用程序。 process.argv
默認。
process.argv 數組包含三個主要元素:
- 首先,文件系統路徑指向節點可執行文件。
- 第二個是正在執行的 JavaScript 文件的名稱。
- 第三個是用戶傳遞的第一個參數。
例子- 創建一個簡單的 Node 腳本,打印出所有傳遞給應用程序的命令行參數。
- 創造 “processargv.js” 粘貼以下代碼。
JavaScript
‘使用嚴格’; for (let j = 0; j ‘ + (process.argv[j]));}1234“使用嚴格”;為了 (讓我來 j = 0; j 過程.argv.長度; j++) { 舒服的.日誌(j + ‘->’ + (過程.argv[j]));} - 使用以下命令運行“processargv.js”傳遞參數:
node processargv.js I am Node
在這裡,我們將 3 個參數傳遞給文件,因此我們可以看到 ‘I’、’am’ 和 ‘Node’ 分別存儲在第 2、第 3 和第 4 個索引中。輸出如下所示:
2. 使用 Yargs 傳遞參數
Yargs 是一個有助於傳遞參數的 Node.js 模塊。可以將參數作為鍵值對傳遞,也可以在程序後面使用鍵來訪問參數值。
- 使用此命令安裝 yargs 模塊。
npm i yargs
- 將以下代碼保存在名為 . “yargs.js” 運行程序將為您提供姓名和年齡值。
JavaScript
‘use strict’; const args = require(‘yargs’).argv; console.log(‘name:’ + args.name); 控制台日誌(‘age:’ + args.age);“使用嚴格”; 不斷 範圍 = 我需要(‘亞格斯’).argv; 舒服的.日誌(‘姓名: ‘ + 範圍.姓名);舒服的.日誌(‘年: ‘ + 範圍.年); - 要運行以下命令,請在提示符處運行以下代碼:您正在傳遞姓名和年齡值。
node yargs.js --name=node --age=15
輸出如下所示:
了解更多高級功能 yargs
訪問此高級指南。
3.使用Minimist模塊分析參數
為 Node.js 應用程序解析命令行參數的另一種方法是使用 minimist 模塊。 解析 process.argv 數組中的參數並將它們傳輸到一個方便的關聯數組中。此關聯數組可用於使用索引名稱訪問元素。
- 使用此命令安裝 minimist 模塊。
npm i minimist
- 將以下腳本保存為 . “極簡主義.js”這裡我們使用了一個 slice 方法,從作為參數傳遞的索引開始刪除所有先前的數組元素。
JavaScript
‘use strict’; const args = require(‘minimist’)(process.argv.slice(2)); 控制台日誌(args.i); 控制台日誌(args.n);“使用嚴格”; 不斷 範圍 = 我需要(‘極簡主義者’)(過程.argv.片(2)); 舒服的.日誌(範圍.一代);舒服的.日誌(範圍.n); - 傳遞參數時還可以按字母訪問元素。在這裡,將“i”指定為第二個索引的名稱,然後將“n”指定為第三個索引的名稱。像這樣:
node minimist.js –i node –n 15
輸出如下所示:
但 minimist
功能不多 yargs
您仍然可以使用它來簡化您的工作。在此處閱讀有關極簡主義的更多信息。
結論是
在使用 Node.js 時,解析參數是一個簡單而重要的話題。有一些選項可以讓您的工作更輕鬆。所以如果你想要豐富和高級的功能,根據你的需要選擇和使用 yargs
否則 process.argv
什麼時候 minimist
.