2016-08-08 54 views
0

Edit: Mykola Borysyuk schlug vor, ich verwende node-optimist, leider der Autor sagte seine veraltet und Minimist zu verwenden.Concarting Argumente nach Argv [2] NodeJs

Nachdem ich es gelesen habe, bekomme ich den Grundgedanken davon, aber könnte mir jemand ein Beispiel zeigen?


Wie der Titel vermuten lässt, versuche ich mehrere Argumente für einen Befehl zu kombinieren.

Mit anderen Worten ... Befehl geht node init.js search <value>.

Offensichtlich habe ich keine Ahnung, wie viele Wörter der Benutzer nach der Suche eingeben wird, also möchte ich all diese "Argumente" in eine Zeichenfolge concat, die ich an mein Suchmodul senden kann.

Ich bin mir bewusst, dass ich die folgenden „Gruppe“ alle Argumente in unabhängige Strings verwenden können

var cmd_string = process.argv.map(function(arg){ 
    return "'" + arg.replace(/'/g, "'\\''") + "'"; 
}).join(' '); 

und diese ausgeben kann alle Argumente

process.argv.forEach((val, index) => { 
    console.log(`${index}: ${val}`); 
}); 

Aber ich weiß nicht, wie Ich würde über die Extraktion nur die Werte nach process.argv[2];

Bonus: Wenn möglich, könnten Sie mir auch zeigen, oder einen Weg, wie ich nach Flags wiesuchen könnte

Ich habe ein paar Stunden damit verbracht, Reddit und Google zu surfen, und ich bin kurz gekommen, also hoffe ich, dass Sie einen Einblick geben können.

+1

https://github.com/substack/node-optimist Dieses Modul ziemlich gut. –

Antwort

0

Um alle args zu erhalten Sie

process.argv 

zum Beispiel verwenden können:

node test.js arg1 arg2 

process.argv wird wie:

[NodeJs path, file path, arg1, arg2] 

Nachdem Sie tun können, alle mit Ihnen wollen Argumente, zum Beispiel, beitreten Zeichenfolge:

process.argv.join(''); 

zwei Elemente überspringen Sie so etwas wie verwenden:

process.argv.splice(2, process.argv.length - 1) 

oder process.argv.slice (2)

+0

könnten Sie auch ein Beispiel zeigen, wie es mit Minimist geht? – AmouxTechnerd