class Argvs {
constructor() {
this.argvsAll = this.argvsAll();
}
argvsAll() {
return process.argv.slice(2).reduce((acc, item) => {
item = item.split(/=/);
const [k, v] = [item[0].replace(/-/gi, ''), item[1]];
acc.push({
[k]: v
});
return acc;
}, [])
} argvsGet(k) {
return this.argvsAll.reduce((acc, item) =>
acc ?
acc :
(k in item) ?
acc = item[k] :
acc, false)
} argvsKeys(argvsAll) {
if(!argvsAll) argvsAll = this.argvsAll;
return argvsAll.reduce((acc, item) =>{
return [...acc, ...Object.keys(item)]
}, [])
}
argvsHas(k){
return Object.is(this.argvsKeys().indexOf(k), -1) ? false : true;
} } // λ node server.js --name=ajanuw --post=14
let a = new Argvs();
console.log( a.argvsAll); // [ { name: 'ajanuw' }, { post: '14' } ]
console.log( a.argvsGet('name')); // ajanuw
console.log( a.argvsGet('post')); // 14
console.log( a.argvsKeys()); // [ 'name', 'post' ]
console.log( a.argvsHas('name')); // true

node.js 简单的获取命令参数的更多相关文章

  1. 2.Node.js access_token的获取、存储及更新

    文章目录:         1.Node.js 接入微信公众平台开发         2.Node.js access_token的获取.存储及更新 一.写在前面的话   上一篇文章中,我们使用 No ...

  2. Node.js简单介绍并实现一个简单的Web MVC框架

    编号:1018时间:2016年6月13日16:06:41功能:Node.js简单介绍并实现一个简单的Web MVC框架URL :https://cnodejs.org/topic/4f16442cca ...

  3. node.js 使用----相关常用命令总结

    node.js 使用----相关常用命令总结 1. 下载并安装node.js 2. 设置全局模块存放的目录 2.1 查看默认配置 npm config ls 2.2 修改全局模块存放目录 npm co ...

  4. node.js获取命令参数

    假如有个加密程序test.js,不想每次加密的时候都修改代码,直接通过控制台输入参数 var createHash = require('sha.js') var sha1 = createHash( ...

  5. 使用Node.js简单创建一个服务器

    首先,我们要了解Node.js不是一种语言,它只是一个除了浏览器之外的,可以运行js的环境. 其次,Node能做些什么 ? web服务器.  命令行工具.   网络爬虫. 桌面应用程序开发等 3.接下 ...

  6. Node.js简单操作

    在node中是不支持BOM和DOM操作的,所以像alert().document.write...都是不支持的,可以是console.log() 首先我们来输出"hello world&qu ...

  7. Node.js简单介绍

    Node.js是一个能够让javascript执行在server上的平台,既是语言又是平台. Node.js是一个实时web应用程序的平台. Node.js有强大的包管理器npm,故node相关软件安 ...

  8. Node.js中,获取req请求的原始IP

    Node.js代码 var express = require('express'); var app = express(); var http = require('http'); var ser ...

  9. node.js简单数据接口开发

    随着网络时代的快速发展,前端开发不仅仅是做出漂亮的页面就可以了,还要会一点后端语言,那么后端语言有Java,php,node.js最常见,那我们应该学哪一种呢,为了让我们自己更好的学习,我推荐选择no ...

随机推荐

  1. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(三十):使用flatMapGroupsWithState替换agg

    flatMapGroupsWithState的出现解决了什么问题: flatMapGroupsWithState的出现在spark structured streaming原因(从spark.2.2. ...

  2. Rplidar学习(五)—— rplidar使用cartographer_ros进行地图云生成

    一.Cartographer简介 Cartographer是google开源的通用2D和3D定位与地图同步构建的SLAM工具,并提供ROS接口.官网地址:https://github.com/goog ...

  3. [剑指Offer]5.二维数组中的查找

    题目 在一个二维数组中,每一行都依照从左到右递增的顺序排序,每一列都依照从上到下递增的顺序排序.请完毕一个函数,输入这种一个二维数组和一个整数.推断数组中是否含有该整数. 思路 [算法系列之三十三]杨 ...

  4. [100]awk运算-解决企业统计pv/ip问题

    awk运算 awk以脚本方式运行 #!/bin/awk BEGIN{ arr[1]="maotai"; arr[2]="maotai" for(k in arr ...

  5. 关于java线程、进程的一些问题

    1.多核硬件上,java中同一个进程的多个线程可以运行在不同的CPU上么? 应该是可以的,在eclipse上面跑一个模拟程序,一个死循环的线程可以占用系统(4核,Win7)%的CPU,4个这样的线程刚 ...

  6. Android studio ButterKnife插件

    1.功能:给所有的有id的控件添加注解 2.github地址 https://github.com/avast/android-butterknife-zelezny 3.插件下载地址 http:// ...

  7. 用Python来玩微信跳一跳

    微信2017年12月28日发布了新版本,在小程序里面有一个跳一跳小游戏,试着点一点玩了下.第二天刚好在一篇技术公众号中,看到有大神用Python代码计算出按压时间,向手机发送android adb命令 ...

  8. python prettytable模块

    简介 Python通过PrettyTable模块可以将输出内容如表格方式整齐地输出. 安装 pip install prettytable 1 示例 from prettytable import P ...

  9. [APM] 2个实例+5个维度解读APM技术

    为了加深EGO会员之间的相互了解,同时也为大家提供更多线上相互学习交流的机会,EGO正式启动会员群线上分享活动.本文是根据陈靖华分享主题“APM的价值”的内容整理而成. 第二期分享嘉宾:陈靖华,EGO ...

  10. 【Linux高级驱动】触摸屏工作原理与工作流程

    触摸屏工作原理 触摸屏工作流程 @成鹏致远 (blogs:http://lcw.cnblogs.com) (email:wwwlllll@126.com) ) From WizNote