首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在NodeJS上分配特定的参数?

问如何在NodeJS上分配特定的参数?
EN

Stack Overflow用户
提问于 2019-08-31 14:33:38
回答 3查看 116关注 0票数 0

我有一个名为test.js的文件,它有两个输入参数和一些困难的值,我想从另一个节点js文件调用这个文件,但我只想分配给第二个参数,而不是分配第一个参数。你知道怎么做吗?

test.js

代码语言:javascript
复制
const first= process.argv[2] || "one";
const second= process.argv[3] || "two";

console.log(first);
console.log(second);

another.js

代码语言:javascript
复制
const child = require('child_process');
child.execFileSync('node', [
        'test.js',
        'second parameter'

    ],
    {stdio: ['ignore', 1, 2]}
);

当前结果:

代码语言:javascript
复制
$ node another.js
second parameter
two

预期结果:

代码语言:javascript
复制
$ node another.js
one
second parameter
EN

回答 3

Stack Overflow用户

发布于 2019-08-31 14:45:04

要实现此功能,您必须在test.js中执行此操作。你可以这样做:

代码语言:javascript
复制
//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);
票数 0
EN

Stack Overflow用户

发布于 2019-08-31 16:03:38

看起来你的第一个参数是可选的。将可选参数移到列表的末尾是一种很好的做法。因此,一个可能的解决方案是交换你们的论点。

解决这个问题的另一种方法是使用这样的命名参数:

代码语言:javascript
复制
node another.js --bar="second parameter" --foo="first parameter"
票数 0
EN

Stack Overflow用户

发布于 2019-08-31 16:19:00

下面是如何做到这一点的。

a.js

代码语言:javascript
复制
const child = require('child_process');
child.execFileSync(
    'node',
    ["test.js",'','2nd param'],
    { stdio: ['ignore',1,2] }
);

test.js

代码语言:javascript
复制
const first= process.argv[2] || "one";
const second= process.argv[3] || "two";

console.log(first);
console.log(second);
代码语言:javascript
复制
node --version
v12.2.0

node a.js
one
2nd param

这将为第一个参数分配一个空字符串,并通过测试。

它通过了您的测试,因为process.argv[2]将是空字符串'',即falsey,并被缺省的"one"替换

将空白的第一个参数''替换为null、undefined或使用,,实际上会发送字符串'null'或'undefined'作为第一个参数,这将无法通过测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57735752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档