检查在使用节点运行程序时是否给出ARGV
Checking if ARGV is given when running a program with node
使用节点运行程序时:
node test.js
当运行node test.js --example
时,如何检查程序是否被赋予了ARGV
?到目前为止,我已经尝试了以下内容:
function say(input){
console.log(input);
}
if(process.argv[1] !== '')
{
say('false');
}
else {
say('success');
}
if(process.argv[1] === null)
{
say('false');
}
else {
say('success');
}
然而,第一个解决方案不会输出else
,第二个解决方案只输出NUL is not defined
,因此,我认为我在编码中犯了一些错误?
- argv[0]是您的节点的名称,在一般节点中是预处理程序-->
- argv[1]是脚本的路径。所以argv[1]总是被填充的
试着做到心中有数:
console.log(process.argv);
感谢kevin ternet提供的答案,以及maioman所提供的信息,我最终做的是:
if(process.argv[2] === undefined){
say('false');
} else {
say('true');
}
以下是在Node中处理ARGV
时发生的情况:
ARGV[0]
:
if(process.argv[0] === undefined){
console.log('Failure');
console.log(process.argv[0]);
} else {
console.log('Success');
console.log(process.argv[0]);
}
输出:
Success
C:'Program Files'nodejs'node.exe //Path to node executable
ARGV[1]
:
if(process.argv[1] === undefined){
console.log('Failure');
console.log(process.argv[1]);
} else {
console.log('Success');
console.log(process.argv[1]);
}
输出:
Success
C:'Users'bin'javascript'node'test.js //Path to file
ARGV[2]
:
if(process.argv[2] === undefined){
console.log('Failure');
console.log(process.argv[1]);
} else {
console.log('Success');
console.log(process.argv[2]);
}
输出:
Success
--example //The actual flag that was given
因此,为了检查是否真的给出了一个标志,您可以查找ARGV[2]
。
以下是运行的整个ARGV
树的示例:
if(process.argv === undefined){
console.log('Failure');
console.log(process.argv);
} else {
console.log('Success');
console.log(process.argv);
}
Success
[ 'C:''Program Files''nodejs''node.exe' //ARGV[0],
'C:''Users''bin''javascript''node''test.js' //ARGV[1],
'--example' //ARGV[2] ]
正如您所看到的,树的结构是一个数组,第一个参数是0
。
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 如何检测是否有溢出
- jQuery中是否内置了任何字符串格式化函数
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 测试索引值是否等于某个数字的倍数
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 是否可以禁用jquery中的单个单选按钮
- 是否可以从父类访问子类的属性
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 如何让程序检查所选单词中是否有按键
- 用于检查数组中是否存在元素的javascript自定义方法
- 如何使用jquery确定用户是否年满18岁
- 检查在使用节点运行程序时是否给出ARGV