node node.js nconf

node.js - node - Capturando argumentos de línea de comando usando NCONF



node js config module (3)

Creo que la mejor manera de hacer esto es así:

//contents of app.js var nconf = require(''nconf'').argv();

Si llama a su programa con el siguiente comando de línea de comando:

node app.js --one foo --two bar

Luego, en tu programa puedes acceder a estos argumentos de la línea de comando de esta manera:

var nconf = require(''nconf'').argv(); var one = nconf.get(''one''); //one = ''foo'' var two = nconf.get(''two''); //two = ''bar''

por lo que necesita el símbolo - delante del identificador, luego puede acceder a los argumentos de la línea de comando.

Francamente, como mensaje al autor del módulo nconf Charlie Robbins, creo que sería mejor no mezclar todo en un gran hash.

Sería mejor si hicieras esto en su lugar:

var foo = nconf.argv.get(''one''); var node_env = nconf.env.get(''NODE_ENV'');

Creo que es más intuitivo y menos propenso a errores.

Además, para aquellos que inician el nodo con ''npm start'':

que yo sepa, necesitas dos guiones extra así:

npm start -- --one foo --two bar

con los guiones / guiones adicionales, usted le informa a Bash que los argumentos son para su ejecutable node.js, no para el ejecutable node.js de NPM

Tengo una secuencia de comandos de backend simple node.js y quiero capturar los argumentos de la línea de comandos junto con las claves / valores de un archivo config.json y las variables de entorno. No estoy teniendo problemas con los dos segundos, pero tengo problemas casi inexplicables al capturar los argumentos de la línea de comandos.

Puedo capturar los argumentos de la línea de comandos de esta manera:

var nconf = require(''nconf''); nconf.argv().env().file({file: ''./config.json''}); var csvFilePath = nconf.argv().get()._[0]; // var csvFilePath = process.argv[2]; var csvType = nconf.argv().get()._[1]; // var csvType = process.argv[3];

estas dos llamadas son equivalentes a process.argv [índice], excepto que se cambia el índice.

Tiene que haber una forma más directa de capturar los argumentos de la línea de comandos, pero incluso cuando depuro y observo las variables que produce nconf, todavía no puedo entenderlo.

¿Alguien con nconf tiene experiencia para ayudar?


Prueba esto

npm start -- --one foo --two bar

Está funcionando para mí en windows.


Un poco más corto / más limpio:

var nconf = require(''nconf''); nconf.argv().env().file({file: ''./config.json''}); var csvFilePath = nconf.get(''_'')[0]; // var csvFilePath = process.argv[2]; var csvType = nconf.get(''_'')[1]; // var csvType = process.argv[3];

Si nombra su parámetro (por ejemplo, --foo=bar o -f bar ), puede usar .get(''foo'') o .get(''f'') lugar de usar el índice de matriz.