Ejecutando mi script como el siguiente:
Node index.js POST *En mi script hago esto:
process.argv.forEach((val, index) => { console.log(`${index}: ${val}`); });El resultado será el siguiente donde * hace que se descarguen todos los nombres de mis archivos en mi proyecto:
$ node index.js POST * 0: C:\Program Files\nodejs\node.exe 1: C:\Users\myComputer\myScript\index.js 2: POST 3: commands 4: data.json 5: index.js 6: node_modules 7: package-lock.json 8: package.json¿Cómo puedo ver si el arg pasado es un astricts?
Funciona perfectamente bien para otros argumentos como otras cadenas (en mi ejemplo, 'POST').
También usé https://github.com/tj/commander.js y el mismo problema.
Uso de la versión 15 del nodo
Si está ejecutando esto en bash o algún shell similar, entonces el englobamiento está ocurriendo en un nivel de shell, antes de que llegue a su programa. No puede ver si se escribió una estrella desde dentro del programa, porque el shell la cambia por una lista de todos los archivos en el directorio.
Si desea pasar una estrella real, puede ponerla entre comillas, y de esa manera el shell no la expandirá a todos los archivos y la pasará al programa tal como está.