【问题标题】:First option should be filled for second option in Node.jsNode.js 中的第二个选项应填写第一个选项
【发布时间】:2021-10-13 18:39:02
【问题描述】:

我的全局包global.js文件的代码:

let fileName = '',
    port = '';


newArgv = process.argv.slice(2);

if (newArgv[0] === '-db' && newArgv[1] !== '') {
    fileName = newArgv[1];
} if (newArgv[2] === '-port' && newArgv[3] !== '') {
    port = newArgv[3];
}

jsonSpot(fileName, port);

jsonSpot(fileName, port); 在另一个文件中,代码如下:

myFunction = (entryFileName, entryPort) => {

    let fileName = entryFileName || 'db.json',
        port = entryPort || 4000;

...

我打开我的 CMD 并编写以下命令:

myPackage --db myDb.json --port 3000

它有效。

下面的命令也可以工作(我写的默认考虑端口 4000):

myPackage --db myDb.json

但是另一个命令没有,我的其余代码总是考虑端口 4000(这里应该考虑端口 3000):

myPackage --port 3000

我的代码有什么问题?

我的命令代码有什么问题或者它们与其他部分有关(绝对没有显示其他部分)?

谢谢

【问题讨论】:

    标签: javascript node.js ecmascript-6 ecma


    【解决方案1】:

    在这种情况下,您只有 1 个参数,即“端口”,但您的代码无法处理 newArgv[0] === '-port' 的情况。

    考虑使用像“commander”这样的包来处理命令行参数。

    【讨论】:

      猜你喜欢
      • 2016-11-07
      • 2020-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-21
      • 1970-01-01
      相关资源
      最近更新 更多