分享更有价值
被信任是一种快乐

node如何获取命令行中的参数

文章页正文上

这篇文章主要讲解了“node如何获取命令行中的参数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的免费云主机、域名思路慢慢深入,一起来研究和学习“node如何获取命令行中的参数”吧!processnodejs内置的一个对象,该对象提供了当前有关nodejs进程的信息。(例如获取当前进程id,执行平台等与当前执行进程相关的对象和方法)在该对象中,有一个arg属性,它可以获取当前node执行时传入各个参数数据。我们创建一个index.js文件,先打印下process.args里面是什么东西

console.log(process.arg)
//nodeindex.js
[
'D:softwarenodejsnode.exe',
'D:projectscriptsrcindex.js'
]

从上面的输出结果,可以得到当前执行的node程序路径(也就是process.execPath返回值)和执行的文件(index.js)路径,我们像使用其他cli工具一样添加一些参数试试

nodeindex.jsname=zhangsanage=18

[
'D:softwarenodejsnode.exe',
'D:projectscriptsrcindex.js',
'name=zhangsan',
'age=18'
]

可以看到我们传入的name参数与age参数也被获取到了需要注意的是argv中的参数是通过空格来分割的通常,我们会在命令行每个参数前面添加--字符,用来识别传入的各个参数。例如在esbuild构建工具中

esbuildapp.jsx--bundle--outfile=out.js

例如在vite构建工具中

vite--configmy-config.js

修改一下上面的命令为

nodeindex.js--name=zhangsan--age=18

将会得到如下输出结果

[
'D:softwarenodejsnode.exe',
'D:projectscriptsrcindex.js',
'--name=zhangsan',
'--age=18'
]

从上面两个例子和官方文档中,我们可以得知argv的前两个参数都是固定的,在获取用户传入的参数我们需要process.argv.slice(2)一下,只获取从下标2开始的元素。
也即是

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

有了这些数据之后,我们需要再进一步解构里面的参数,将前面的--去除掉,把key=value改变成{key:value}方便我们在开发中进行参数获取。
最终我们得到了这样子的函数:获process.argv数组,并切片从下标2开始判断数组中的每个值是否为--开头,是则视为用户传入参数同样进行切片操作,获取下标2开始的字符,再通过=区分出对应的keyvalue,其返回的是[key,value]最后,将这个二维数组传入到Object.fromEntries转换为一个对象

constarguments=process.argv.slice(2);
constparams=Object.fromEntries(
arguments.reduce((pre,item)=>{
if(item.startsWith("--")){
return[...pre,item.slice(2).split("=")];
}
returnpre;
},[]),
);
console.log(params)
//{name:'zhangsan',age:'18'}

感谢各位的阅读,以上就是“node如何获取命令行中的参数”的内容了,经过本文的学习后,相信大家对node如何获取命令行中的参数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是云技术,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: vue中怎么持续执行一段代码

本篇内容介绍了“vue中怎么持续执行一段代码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所免费云主机、域名成! 一、使用setInterval方法setInterv…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册