最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node獲取命令行中的參數(shù)詳解

 更新時間:2022年11月08日 15:13:02   作者:_island  
這篇文章主要為大家介紹了node獲取命令行中的參數(shù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

認識process

在開發(fā)cli工具時,往往離不開獲取指令中各種參數(shù)信息,接下來本文將帶著你如何在Node.js中獲取執(zhí)行時的參數(shù)

processnodejs內(nèi)置的一個對象,該對象提供了當前有關nodejs進程的信息。(例如獲取當前進程id,執(zhí)行平臺等與當前執(zhí)行進程相關的對象和方法)

node process文檔

process.arg

在該對象中,有一個arg屬性,它可以獲取當前node執(zhí)行時傳入各個參數(shù)數(shù)據(jù)。

我們創(chuàng)建一個index.js文件,先打印下process.args里面是什么東西

console.log(process.arg)
// node index.js
[
  'D:\\software\\nodejs\\node.exe',
  'D:\\project\\script\\src\\index.js'
]

從上面的輸出結(jié)果,可以得到當前執(zhí)行的node程序路徑(也就是process.execPath返回值)和執(zhí)行的文件(index.js)路徑,我們像使用其他cli工具一樣添加一些參數(shù)試試

node index.js name=zhangsan age=18
[
  'D:\\software\\nodejs\\node.exe',
  'D:\\project\\script\\src\\index.js',
  'name=zhangsan',
  'age=18'
]

可以看到我們傳入的name參數(shù)與age參數(shù)也被獲取到了

需要注意的是argv中的參數(shù)是通過空格來分割的

通常,我們會在命令行每個參數(shù)前面添加--字符,用來識別傳入的各個參數(shù)。

例如在esbuild構建工具中

esbuild app.jsx --bundle --outfile=out.js

例如在vite構建工具中

vite --config my-config.js

修改一下上面的命令為

node index.js --name=zhangsan --age=18

將會得到如下輸出結(jié)果

[
  'D:\\software\\nodejs\\node.exe',
  'D:\\project\\script\\src\\index.js',
  '--name=zhangsan',
  '--age=18'
]

封裝獲取參數(shù)函數(shù)

從上面兩個例子和官方文檔中,我們可以得知argv的前兩個參數(shù)都是固定的,在獲取用戶傳入的參數(shù)我們需要process.argv.slice(2)一下,只獲取從下標2開始的元素。 也即是

[
  '--name=zhangsan',
  '--age=18'
]

有了這些數(shù)據(jù)之后,我們需要再進一步解構里面的參數(shù),將前面的--去除掉,把key=value改變成{key:value}方便我們在開發(fā)中進行參數(shù)獲取。 最終我們得到了這樣子的函數(shù):

  • process.argv數(shù)組,并切片從下標2開始
  • 判斷數(shù)組中的每個值是否為--開頭,是則視為用戶傳入?yún)?shù)
  • 同樣進行切片操作,獲取下標2開始的字符,再通過=區(qū)分出對應的keyvalue,其返回的是[key,value]
  • 最后,將這個二維數(shù)組傳入到Object.fromEntries轉(zhuǎn)換為一個對象
const arguments = process.argv.slice(2);
const params = Object.fromEntries(
  arguments.reduce((pre, item) => {
    if (item.startsWith("--")) {
      return [...pre, item.slice(2).split("=")];
    }
    return pre;
  }, []),
);
console.log(params)
// { name: 'zhangsan', age: '18' }

以上就是node獲取命令行中的參數(shù)詳解的詳細內(nèi)容,更多關于node獲取命令行參數(shù)的資料請關注腳本之家其它相關文章!

相關文章

  • 史上無敵詳細的Node.Js環(huán)境搭建步驟記錄

    史上無敵詳細的Node.Js環(huán)境搭建步驟記錄

    Node.js是一個事件驅(qū)動I/O服務端JavaScript環(huán)境,由于其擁有異步非阻塞、環(huán)境搭建簡單、實踐應用快等特性,使得其在新一代編程開發(fā)中更為流行,下面這篇文章主要給大家介紹了關于Node.Js環(huán)境搭建步驟記錄的相關資料,需要的朋友可以參考下
    2023-03-03
  • node.js 抓取代理ip實例代碼

    node.js 抓取代理ip實例代碼

    這篇文章主要介紹了node.js 抓取代理ip實例代碼的相關資料,需要的朋友可以參考下
    2017-04-04
  • node.js平臺下利用cookie實現(xiàn)記住密碼登陸(Express+Ejs+Mysql)

    node.js平臺下利用cookie實現(xiàn)記住密碼登陸(Express+Ejs+Mysql)

    這篇文章主要介紹了node.js平臺下利用cookie實現(xiàn)記住密碼登陸(Express+Ejs+Mysql),具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • 一文帶你了解Node.js進程管理工具PM2

    一文帶你了解Node.js進程管理工具PM2

    Node.js進程管理工具PM2是一個開源的工具,用于管理和監(jiān)控Node.js應用程序的運行,它可以幫助您方便地啟動、停止、重啟和監(jiān)視多個Node.js進程,并提供了許多有用的功能,所以本文就和大家一起了解一下PM2,需要的朋友可以參考下
    2023-07-07
  • node.js中ws模塊創(chuàng)建服務端和客戶端,網(wǎng)頁WebSocket客戶端

    node.js中ws模塊創(chuàng)建服務端和客戶端,網(wǎng)頁WebSocket客戶端

    今天小編就為大家分享一篇關于node.js中ws模塊創(chuàng)建服務端和客戶端,網(wǎng)頁WebSocket客戶端,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • node學習記錄之搭建web服務器教程

    node學習記錄之搭建web服務器教程

    本篇文章主要介紹了詳解node學習記錄——搭建web服務器,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • node中使用log4js4.x版本記錄日志的方法

    node中使用log4js4.x版本記錄日志的方法

    這篇文章主要介紹了node中使用log4js4.x版本記錄日志的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • 用C/C++來實現(xiàn) Node.js 的模塊(一)

    用C/C++來實現(xiàn) Node.js 的模塊(一)

    這篇文章的主要內(nèi)容其實簡而言之就是——用C/C++來實現(xiàn) Node.js 的模塊,非常的不錯,有需要的朋友可以參考下
    2014-09-09
  • 淺析node連接數(shù)據(jù)庫(express+mysql)

    淺析node連接數(shù)據(jù)庫(express+mysql)

    Node是一個Javascript運行環(huán)境(runtime)。實際上它是對Google V8引擎進行了封裝。V8引 擎執(zhí)行Javascript的速度非???,性能非常好。Node對一些特殊用例進行了優(yōu)化,提供了替代的API,使得V8在非瀏覽器環(huán)境下運行得更好
    2015-11-11
  • 如何在Nestjs和Vue3中使用socket.io示例詳解

    如何在Nestjs和Vue3中使用socket.io示例詳解

    這篇文章主要為大家介紹了如何在Nestjs和Vue3中使用socket.io示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08

最新評論

高平市| 基隆市| 汉寿县| 鄂伦春自治旗| 张北县| 东兰县| 金沙县| 吴堡县| 沧州市| 左云县| 灵丘县| 黔南| 克什克腾旗| 恭城| 泽普县| 庆城县| 西贡区| 通海县| 德江县| 沅江市| 江都市| 融水| 惠来县| 安丘市| 桦川县| 奇台县| 屯昌县| 浏阳市| 石台县| 女性| 汉寿县| 南丰县| 周口市| 德令哈市| 米易县| 漳浦县| 澎湖县| 定远县| 漾濞| 襄樊市| 商南县|