这篇文章主要讲解了“node如何获取命令行中的参数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“node如何获取命令行中的参数”吧!process
是nodejs
内置的一个对象,该对象提供了当前有关nodejs
进程的信息。(例如获取当前进程id,执行平台等与当前执行进程相关的对象和方法)在该对象中,有一个arg属性,它可以获取当前node执行时传入各个参数数据。我们创建一个index.js文件,先打印下p免费云主机域名rocess.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开始的字符,再通过=
区分出对应的key
和value
,其返回的是[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如何获取命令行中的参数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!
相关推荐: JavaScript的parseInt()使用实例代码分析
这篇文章主要讲解了“JavaScript的parseInt()使用实例代码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深免费云主机域名入,一起来研究和学习“JavaScript的parseInt()使用实例代码分析”吧!通过对比…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。