nodejs之minimist中间件使用

2023-05-16

minimist是nodejs的命令行参数解析工具,因其简单好用,轻量等特性,所以用户使用较多。
特性:
- short options
- long options
- Boolean 和 Number类型的自动转化
- option alias
先看一下minimist整体的解析过程,代码大致是:

or (var i = 0; i < args.length; i++) {
    var arg = args[i];

    if (/^--.+=/.test(arg)) {
        ...
    } else if (/^--no-.+/.test(arg)) {
        ...
    } else if (/^--.+/.test(arg)) {
        ...
    } else if (/^-[^-]+/.test(arg)) {
        ...
    } else {
        ...
    }
}

解析过程中,minimist会依次匹配不同的模式,从long options到short options,匹配之后再进行相应的解析工作。
使用方式:

var parseArgs = require('minimist');
var startParams = parseArgs(argv,opts={})
opts的参数:
    opts.string :字符串或字符串参数名称数组,始终视为字符串
    opts.boolean:一个布尔值,字符串或字符串数​​组,始终视为布尔值。if true会将没有等号的所有双连字符参数视为布尔值(例如,影响--foo,不是-f或--foo=bar)
    opts.alias:将字符串名称映射到字符串或字符串参数名称数组以将其用作别名的对象
    opts.default:将字符串参数名称映射为默认值的对象
Example:
const startParams = require('minimist')(process.argv.slice(2),{
    string : ['port', 'language' ],//key=port|language返回的就是value的字符串
    boolean: ['debug'],//debug参数的value有就对应ture,无就对应false
    alias: {
        port: 'p',//port在解析的时候,会对应返回的是p
        language: 'l',
    },
    default: {
        NODE_ENV: 'dev'//默认设置的值
    }
})
console.log(process.argv.slice(2))
console.log("----------------------");
console.log(startParams);
启动命令:
 D:\StudeyCode\myStudy\myappWx> node .\src\config\index.js --debug=Enble --out=22 --port=3030 --language=cn
 输出结果
[ '--debug=Enble', '--out=22', '--port=3030', '--language=cn' ]
----------------------
{ _: [],
  debug: 'Enble',
  out: 22,
  port: '3030',
  p: '3030',
  language: 'cn',
  l: 'cn',
  NODE_ENV: 'dev' }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nodejs之minimist中间件使用 的相关文章

随机推荐

  • 楼教主男人必解八题之 Coins 解题报告

    楼教主男人必解八题之 Coins 解题报告 题目详见http acm hdu edu cn showproblem php pid 61 2844 这个题目和POJ1742是一个题目 xff0c 也是楼教主的男人八题之一 说的是给出N种硬币
  • CentOS7安装MySQL5.7过程以及常用需要修改操作,安装mysqlclient,安装mysql-devel报错问题以及卸载MySQL

    目录 Docker安装运行命令mysql配置 Centos安装下载安装启动修改root用户密码修改远程访问权限1 改表法2 授权法 MySQL密码验证mysqlclient时候报错 OSError mysql config not foun
  • 如何证明程序的正确性?

    什么样的程序才是正确的 xff1f 如何来保证程序是正确的 xff1f 测试 xff1f NO xff01 采用测试方法确实可以发现程序中的错误 xff0c 但却不能保证和证明程序中没有错误 xff01 先来看一些概念 xff0c 有关 程
  • 平摊分析

    平摊分析 我们经常在处理数据结构的时间复杂度的时候 xff0c 大多数操作代价很低 xff0c 可是由于某些个别操作的代价较高 xff0c 导致最后求得时间复杂度的上界不是那么的紧凑 在平摊分析中 xff0c 执行一系列数据结构操作所需要的
  • java中用FTPClient,执行到ftp.storeFile(fileName, inputFile);无反应

    package com aa test import cn hutool core util StrUtil import com nuctech platform tip constant TipConstant import lombo
  • SpringMVC拦截去之HandlerInterceptorAdapter的使用

    定义 HandlerInterceptorAdapter是SpringMVC中的拦截器 xff0c 它是用于拦截URL请求的 xff0c 主要是为了请求的预处理和后续处理 使用方法 编写代码 我们只需要自定义一个拦截器去继承HandlerI
  • EKF之雅克比矩阵(一)

    扩展卡尔曼滤波 EKF EKF之雅克比矩阵 文章目录 扩展卡尔曼滤波 EKF 前言一 什么是线性化 xff1f 二 雅克比矩阵1 矩阵的几何含义2 非线性矩阵与基底的关系3 雅克比矩阵 三 工程中雅克比矩阵如何应用总结 前言 一般的卡尔曼滤
  • Java数据结构与算法-程序员十大常用算法[day13]

    程序员十大常用算法 文章目录 程序员十大常用算法二分查找算法 非递归 分治算法分治算法最佳实践 汉诺塔 动态规划算法KMP算法KMP算法简介KMP实现 贪心算法普利姆算法克鲁斯卡尔算法分析克鲁斯卡尔算法分析 迪杰斯特拉算法弗洛伊德算法回溯算
  • SNMP测试

    SNMP测试 测试环境 xff1a Solaris10 10 10 128 89 Linux xff1a 10 10 151 8 windows 测试方案 xff1a 1 本地测试 2 远程测试 配置文件 xff1a 修改环境变量 在sol
  • apex编译错误解决方案

    这里写自定义目录标题 apex编译错误解决方案 csrc mlp cpp 123 3 note in expansion of macro AT DISPATCH FLOATING TYPES AND HALF AT DISPATCH FL
  • Javaweb项目实践MVC入门到精通

    Javaweb项目实践MVC入门到精通 目标配置环境实体模型 user Dao的实现实体模型 ModelViewController xff1a 转发任务 xff0c 路由器的功能安全sql注入常见问题 目标 这个目标是写一个MVC模型 通
  • C++ 铪铪铪铪 烫烫烫 屯屯屯

    VS中 xff0c Debug模式下 xff0c 对于未初始化的内存 xff1a 1 xff09 若为栈内存 xff0c 默认为一连串 烫烫烫 xff0c 0xcc 2 xff09 若为堆内存 xff0c 默认为一连串 屯屯屯 xff0c
  • git常用操作命令

    目录 git删除push到远程服务器的commit用户名和邮箱撤销add操作commit message写错了删除已经上传的文件添加文件追踪 git删除push到远程服务器的commit span class token comment 会
  • 魔方矩阵

    看到魔方矩阵 xff0c 好奇 xff0c 好玩儿 xff0c 正好赶上周五 xff0c 就来放松一下 xff0c 总结一下几种魔方矩阵的规律 xff0c 并写一下C 43 43 实现过程 定义 xff1a 平面魔方的一般定义 xff1a
  • 样条插值曲线类型及其优缺点说明

    Spline Types This page gives a breakdown of each spline type how to use each one and the advantages disadvantages of eac
  • caffe layer层详解

    1 基本的layer定义 xff0c 参数 1 基本的layer定义 xff0c 参数 如何利用caffe定义一个网络 xff0c 首先要了解caffe中的基本接口 xff0c 下面分别对五类layer进行介绍 Vision Layers
  • caffe编译中的python问题

    问题 usr include boost python detail wrap python hpp 50 23 fatal error pyconfig h No such file or directory 解决方案 make clea
  • latex图像注释位置

    latex图像注释的位置在左边 不知道谁把模板里的 usepackage caption 给注释掉了
  • pytorch pretrained model

    pytorch pretrained model two methods method 1 比较大小 self span class token punctuation span model span class token operato
  • nodejs之minimist中间件使用

    minimist是nodejs的命令行参数解析工具 xff0c 因其简单好用 xff0c 轻量等特性 xff0c 所以用户使用较多 特性 xff1a short options long options Boolean 和 Number类型