Javascript 如何在NodeJ上分配特定参数?
我有一个名为Javascript 如何在NodeJ上分配特定参数?,javascript,arrays,node.js,optional-parameters,Javascript,Arrays,Node.js,Optional Parameters,我有一个名为test.js的文件,它有两个输入参数,有一些困难的值,我想从另一个节点js文件调用这个文件,但我只想分配给第二个参数,而不分配第一个参数。你知道怎么做吗 test.js const first= process.argv[2] || "one"; const second= process.argv[3] || "two"; console.log(first); console.log(second); const first= process.argv[2] || "one
test.js
的文件,它有两个输入参数,有一些困难的值,我想从另一个节点js文件调用这个文件,但我只想分配给第二个参数,而不分配第一个参数。你知道怎么做吗
test.js
const first= process.argv[2] || "one";
const second= process.argv[3] || "two";
console.log(first);
console.log(second);
const first= process.argv[2] || "one";
const second= process.argv[3] || "two";
console.log(first);
console.log(second);
另一个.js
const child = require('child_process');
child.execFileSync('node', [
'test.js',
'second parameter'
],
{stdio: ['ignore', 1, 2]}
);
当前结果:
$ node another.js
second parameter
two
预期结果:
$ node another.js
one
second parameter
要实现此功能,您必须在
test.js
中执行此操作。
您可以这样做:-
//initialize with default values
let first = 'one', second = 'two';
if (process.argv[3]) { // if has 2nd argument
first = process.argv[2];
second = process.argv[3];
}
else { // else we assign second to 1st argument
second = process.argv[2];
}
console.log(first);
console.log(second);
看起来您的第一个参数是可选的。将可选参数移到列表的末尾是一种很好的做法。所以,一个可能的解决方案是交换你的论点 解决此问题的另一种方法是使用如下命名参数:
node another.js --bar="second parameter" --foo="first parameter"
下面是如何做到这一点 a、 js test.js
const first= process.argv[2] || "one";
const second= process.argv[3] || "two";
console.log(first);
console.log(second);
const first= process.argv[2] || "one";
const second= process.argv[3] || "two";
console.log(first);
console.log(second);
这将为第一个参数指定一个空字符串,并通过测试
它通过了您的测试,因为进程.argv[2]
将是空字符串'
,它是错误的
,并被默认的一“
替换
< >将空白第一个参数<代码> <代码>用<代码> null <代码>,<代码>未定义< /代码>,或使用<代码>,实际上发送字符串<代码> NULL < /代码>或<代码>未定义的作为第一个参数,你必须在
test.js
中实现你想要的功能,你能为你的test.js
和另一个.js
添加正确的文件内容吗?无法运行您的程序