Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Node js commander args returns true instead the value

I want to create a script with node and node commander and when i try to grab the values of my args i get the value true instead the value itself.

For example if i write this in terminal:

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

How i get the value of this args?


2 Answers

The documentation isn't very clear and only shows this by example, but the syntax you have used ('-s, --src') is for boolean values.

If you want to take a string you need to say so: '-s, --src <item>'

like image 165
Quentin Avatar answered Sep 08 '25 06:09

Quentin


You aren't specifying that the options take input. You can do this by including <data> or [data] (if optional) in your option definitions:

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

like image 33
L0j1k Avatar answered Sep 08 '25 08:09

L0j1k