亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

認(rèn)識(shí)process

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

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

node process文檔

process.arg

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

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

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

從上面的輸出結(jié)果,可以得到當(dāng)前執(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ù)是通過(guò)空格來(lái)分割的

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

例如在esbuild構(gòu)建工具中

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

例如在vite構(gòu)建工具中

vite --config my-config.js

修改一下上面的命令為

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

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

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

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

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

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

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

  • process.argv數(shù)組,并切片從下標(biāo)2開始
  • 判斷數(shù)組中的每個(gè)值是否為--開頭,是則視為用戶傳入?yún)?shù)
  • 同樣進(jìn)行切片操作,獲取下標(biāo)2開始的字符,再通過(guò)=區(qū)分出對(duì)應(yīng)的keyvalue,其返回的是[key,value]
  • 最后,將這個(gè)二維數(shù)組傳入到Object.fromEntries轉(zhuǎn)換為一個(gè)對(duì)象
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ù)詳解的詳細(xì)內(nèi)容,更多關(guān)于node獲取命令行參數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Node.js中Koa2在控制臺(tái)輸出請(qǐng)求日志的方法示例

    Node.js中Koa2在控制臺(tái)輸出請(qǐng)求日志的方法示例

    這篇文章主要給大家介紹了關(guān)于Node.js中Koa2在控制臺(tái)輸出請(qǐng)求日志的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Node.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 修改NPM全局模式的默認(rèn)安裝路徑的方法

    修改NPM全局模式的默認(rèn)安裝路徑的方法

    這篇文章主要介紹了修改NPM全局模式的默認(rèn)安裝路徑的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 利用Node.js制作爬取大眾點(diǎn)評(píng)的爬蟲

    利用Node.js制作爬取大眾點(diǎn)評(píng)的爬蟲

    相信每位用過(guò)大眾點(diǎn)評(píng)的人都知道,大眾點(diǎn)評(píng)上有很多美食餐館的信息,所以這篇文章給大家分享利用Node.js實(shí)現(xiàn)爬取大眾點(diǎn)評(píng)的爬蟲,正好可以拿來(lái)練練手Node.js。感興趣的可以參考借鑒。
    2016-09-09
  • 解決Linux無(wú)法正常安裝與卸載Node.js的方法

    解決Linux無(wú)法正常安裝與卸載Node.js的方法

    最近在學(xué)習(xí)node.js,所以下面這篇文章主要給大家介紹了關(guān)于如何解決Linux無(wú)法正常安裝與卸載Node.js的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • NodeJs通過(guò)async/await處理異步的方法

    NodeJs通過(guò)async/await處理異步的方法

    本篇文章主要介紹了NodeJs通過(guò)async/await處理異步的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • Node.js 條形碼識(shí)別程序構(gòu)建思路詳解

    Node.js 條形碼識(shí)別程序構(gòu)建思路詳解

    這篇文章主要介紹了Node.js 條形碼識(shí)別程序構(gòu)建思路詳解的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • nodejs高版本降為低版本的詳細(xì)解決方案

    nodejs高版本降為低版本的詳細(xì)解決方案

    部分老舊項(xiàng)目需要使用低版本的node,網(wǎng)上很多是無(wú)效的,高版本無(wú)法直接安裝低版本node,但是低版本nodejs可以安裝部分高版本node,從而達(dá)到升級(jí)效果,下面這篇文章主要給大家介紹了關(guān)于nodejs高版本降為低版本的詳細(xì)解決方案,需要的朋友可以參考下
    2022-12-12
  • nodejs切換版本使用最新教程(不需要卸載重裝)

    nodejs切換版本使用最新教程(不需要卸載重裝)

    有時(shí)候需要運(yùn)行不同的項(xiàng)目,node版本不一致會(huì)導(dǎo)致不少問題,特別是最新版本對(duì)應(yīng)的一些插件,由于語(yǔ)法等原因?qū)е虏灰欢嫒莸桶姹?這樣運(yùn)行低版本環(huán)境的項(xiàng)目的時(shí)候很多坑,這篇文章主要給大家介紹了關(guān)于nodejs切換版本使用(不需要卸載重裝)的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Nodejs實(shí)現(xiàn)用戶注冊(cè)功能

    Nodejs實(shí)現(xiàn)用戶注冊(cè)功能

    本文通過(guò)實(shí)例代碼給大家介紹了Nodejs實(shí)現(xiàn)用戶注冊(cè)功能,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • 詳解axios在node.js中的post使用

    詳解axios在node.js中的post使用

    最近因?yàn)楣ぷ鞯脑蛟趯W(xué)習(xí)使用網(wǎng)絡(luò)請(qǐng)求庫(kù),因?yàn)檫@個(gè)項(xiàng)目用的是Promise,所以就選擇了axios,下面這篇文章主要給大家介紹了關(guān)于axios在node.js中的post使用的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-04-04

最新評(píng)論