2016-04-11 12 views
0

Ich versuche, zwei Argumente mit Express.js angeben Befehl starten, wie unten angegeben:Passing Argumente Express JS

npm starten -x 5 -y 43

Aber damit, Ich kann die Argumente nicht mit '-' auswählen und sie werden im folgenden Code irgendwie übersprungen.

process.argv.forEach(function (val, index, array) { 
    log.info(index + ': ' + val); 
    log.error("========="+array[index].toString()); 
}); 

Bitte helfen Sie mir, die Argumente mit '-' als Initialen zu bekommen?

Hinweis: Ich habe versucht, Yarks zu verwenden, aber es funktioniert nicht wie in der Anleitung angegeben.

Antwort

3

Um Argumente in npm Skript übergeben Sie double dash -- verwenden müssen:

npm start -- -x 5 -y 43 

prüfen npm-run-script Befehl Dokumentation für weitere Details.

+0

Es funktionierte tatsächlich für das erste '-x', aber es funktionierte nicht für das zweite '-y'. Ich musste noch ein '-' vor dem '-y' hinzufügen. Haben Sie eine Lösung dafür? –

+0

Was funktioniert nicht für dich? Denken Sie daran, dass Sie mit dieser Deklaration '-x 5 -y 43' fünf Argumente erhalten:' filename, x, 5, y, 43', [node docs] (https://nodejs.org/docs/latest) /api/process.html#process_process_argv) – alexmac

+0

'process.argv.forEach (function (val, index, array) { console.log (index + ":" + val); });' Dies ist Druck bis '5' und ** process.argv.length = 4 ** –

0

Ich war einfach in Argumente zu übergeben können mit

npm start myArg1 myArg2 

Beide bin/www und app.js auf sie zugreifen können.

+0

Das OP ist Suche nach Möglichkeiten, das '-' in den Argumenten zu mildern, die der Knoten beim Laufen scheinbar nicht aufnimmt. – Ankit