2015-02-22 25 views
9

Voglio creare uno script con il nodo e il comandante del nodo e quando provo ad afferrare i valori del mio args ottengo il valore true invece il valore stesso.Il nodo js commander args restituisce true invece il valore

Per esempio, se scrivo questo nel terminale:

node myfile.js -s somefile -d test 

var program = require('commander'); 

program 
    .version('0.0.1') 
    .option('-s, --src', 'src csv file') 
    .option('-d, --destination', 'destination csv file') 
    .parse(process.argv); 

console.log(program.src); // return true 
console.log(program.destination); // return true 

come ottenere il valore di questo args?

+0

Potete per favore includere l'output di: 'console.log (JSON.stringify (programma));' Grazie. – L0j1k

+0

Sì, aggiornato ... –

risposta

13

Il documentation non è molto chiaro e lo mostra solo con l'esempio, ma la sintassi utilizzata ('-s, --src') è per valori booleani.

Se si vuole prendere una stringa è necessario dirlo: '-s, --src <item>'

4

È necessario specificare che le opzioni accettano un argomento e che non sono solo una bandiera

program 
    .version('0.0.1') 
    .option('-s, --src <file>', 'src csv file') 
    .option('-d, --destination <file>', 'destination csv file') 
    .parse(process.argv); 

Se l'argomento è obbligatorio, viene specificato con <>. Se è facoltativo, con [].

+0

Sconcertato dal voto negativo che ho ricevuto per questa risposta – xverges

5

Non si specifica che le opzioni siano immesse. È possibile farlo includendo <data> o [data] (se opzionale) nelle definizioni delle opzioni:

.option('-s, --src <src>', 'src csv file') .option('-d, --dest [dest]', 'destination csv file')

Problemi correlati