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 模塊讀取 Node.js 命令參數

minimist 功能不多 yargs 您仍然可以使用它來簡化您的工作。在此處閱讀有關極簡主義的更多信息。

結論是

在使用 Node.js 時,解析參數是一個簡單而重要的話題。有一些選項可以讓您的工作更輕鬆。所以如果你想要豐富和高級的功能,根據你的需要選擇和使用 yargs 否則 process.argv 什麼時候 minimist.