运行带节点的程序时:
node test.js
如何在运行ARGV
时检查程序是否获得node test.js --example
?到目前为止我所尝试的是以下内容:
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
所以,我正在考虑的是我在编码中犯了一些错误?< / p>
答案 0 :(得分:6)
尝试这一点非常清楚:
session.createSQLQuery("select *, concat(country_code,contact_number) as phone_no from student").addScalar("phone_no", StringType.INSTANCE);
答案 1 :(得分:4)
感谢 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
。
答案 2 :(得分:-2)
另见minimist here。
var argv = require('minimist')(process.argv.slice(2));
console.dir(argv);
console.log(argv.example);