Node.js中的第二个选项应填写第一个选项
First option should be filled for second option in Node.js
我的全局包的 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
我的代码有什么问题?
是不是我的命令代码有什么问题,或者它们与其他部分有关(绝对没有显示其他部分)?
谢谢
在这种情况下,您只有 1 个参数“端口”,但您的代码无法处理 newArgv[0] === '-port' 的情况。
考虑使用像“commander”这样的包来处理命令行参数。
我的全局包的 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
我的代码有什么问题?
是不是我的命令代码有什么问题,或者它们与其他部分有关(绝对没有显示其他部分)?
谢谢
在这种情况下,您只有 1 个参数“端口”,但您的代码无法处理 newArgv[0] === '-port' 的情况。
考虑使用像“commander”这样的包来处理命令行参数。