How do I pass command line arguments to a Node.js program?

后端 未结 30 2652
梦如初夏
梦如初夏 2020-11-22 04:03

I have a web server written in Node.js and I would like to launch with a specific folder. I\'m not sure how to access arguments in JavaScript. I\'m running node like this:

30条回答
  •  北恋
    北恋 (楼主)
    2020-11-22 04:32

    command-line-args is worth a look!

    You can set options using the main notation standards (learn more). These commands are all equivalent, setting the same values:

    $ example --verbose --timeout=1000 --src one.js --src two.js
    $ example --verbose --timeout 1000 --src one.js two.js
    $ example -vt 1000 --src one.js two.js
    $ example -vt 1000 one.js two.js
    

    To access the values, first create a list of option definitions describing the options your application accepts. The type property is a setter function (the value supplied is passed through this), giving you full control over the value received.

    const optionDefinitions = [
      { name: 'verbose', alias: 'v', type: Boolean },
      { name: 'src', type: String, multiple: true, defaultOption: true },
      { name: 'timeout', alias: 't', type: Number }
    ]
    

    Next, parse the options using commandLineArgs():

    const commandLineArgs = require('command-line-args')
    const options = commandLineArgs(optionDefinitions)
    

    options now looks like this:

    {
      src: [
        'one.js',
        'two.js'
      ],
      verbose: true,
      timeout: 1000
    }
    

    Advanced usage

    Beside the above typical usage, you can configure command-line-args to accept more advanced syntax forms.

    Command-based syntax (git style) in the form:

    $ executable  [options]
    

    For example.

    $ git commit --squash -m "This is my commit message"
    

    Command and sub-command syntax (docker style) in the form:

    $ executable  [options]  [options]
    

    For example.

    $ docker run --detached --image centos bash -c yum install -y httpd
    

    Usage guide generation

    A usage guide (typically printed when --help is set) can be generated using command-line-usage. See the examples below and read the documentation for instructions how to create them.

    A typical usage guide example.

    usage

    The polymer-cli usage guide is a good real-life example.

    usage

    Further Reading

    There is plenty more to learn, please see the wiki for examples and documentation.

提交回复
热议问题