前言
无论是前端还是后端,我们经常需要使用命令行工具来执行一些操作以及传递参数。在 Node.js 中,我们可以使用 process.argv
获取命令行参数,但是这种方式需要我们手动解析参数,非常麻烦。为了方便解析命令行参数,可以使用 npm 包 express-args
。
什么是 express-args
express-args
是一个 Node.js 命令行参数解析器,可以方便地解析命令行参数,支持使用短参数、长参数,还可以指定参数的值类型,非常方便。
安装
express-args
可以通过 npm 安装,可以在项目根目录下使用以下命令安装:
npm install express-args --save
使用
我们先看一个简单的例子:
-- -------------------- ---- ------- ----- ----------- - ------------------------ ------------------- --------- - ----- ----- -- ------ -------- -------- - - ----- ------- ------ ---- ----- ------- -- -- -- ----- -------- -- - -- ----- - ------------------------- ---------------- - --------------------- ---
运行 node script.js -p 8080
可以输出如下结果:
{ _: [ 'start' ], port: 8080, '$0': 'script.js' }
我们来分析一下 parse
方法的用法:
expressArgs.parse(options, (err, options) => { // 解析成功 }, (err) => { // 解析失败 });
options
参数是一个对象,包含以下字段:
defaults
: 提供默认值的对象,可以使用key/value
的形式设置,默认为{}
。value
: 命令行参数数组的第一个元素,如果省略,会默认使用process.argv.slice(2)
。options
:Array
类型的数组,定义每个命令行选项的名称和类型。也可以使用--
标记来结束选项。
options
数组中的每个元素都是一个选项,可以包含如下字段:
name
: 选项名称,必填。alias
: 选项简称,可选。type
: 选项值类型,可选,默认为字符串类型。可以使用Number
,Array
,Boolean
,Count
等类型。
示例
我们可以使用 express-args
实现一个简单的命令行工具,用来解析我们的命令行参数。
我们假设我们的命令行参数是这样的:
node script.js add fred node script.js remove barney node script.js list
如果我们不使用 express-args
,需要手动解析参数:
-- -------------------- ---- ------- ----- ------- - ---------------- -- -------- --- ------ - ----- ---- - ---------------- ------------------- ---------- - ---- -- -------- --- --------- - ----- ---- - ---------------- --------------------- ---------- - ---- -- -------- --- ------- - -------------------- --- -------- - ---- - -------------------- ---------- -
使用 express-args
后,可以改写成如下代码:
-- -------------------- ---- ------- ----- ----------- - ------------------------ ------------------- ------ ---------------------- -------- - - ----- ---------- ----- ------- -------------- ----- -- - ----- ------- ----- ------- --------- ----- -- -- -- ----- -------- -- - -- ----- - ------------------------- ---------------- - ----- ------- - ---------------- ----- ---- - ------------ - -------------------- -- - --- -- -------- --- ------ - ------------------- ---------- - ---- -- -------- --- --------- - --------------------- ---------- - ---- -- -------- --- ------- - -------------------- --- -------- - ---- - -------------------- ---------- - ---
总结
express-args
是一个非常实用的 npm 包,可以方便地解析命令行参数。在我们开发命令行工具时,可以考虑使用这个包,可以避免繁琐的参数解析工作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005597881e8991b448d6ff8