使用命令行中的参数运行JS函数

时间:2018-01-22 04:19:58

标签: javascript node.js command-line cmd

我有一个带有函数的javascript文件,该函数接收带有随机数的数组并返回一个解决方案,我需要能够从命令行运行此函数。

我想要的是能够键入以下内容: myFunction 1,2,3,4,5,6,7

4 个答案:

答案 0 :(得分:1)

Export您文件中的功能:

module.exports = function myFunction(){
    // ...
}

然后通过首先运行node然后执行:

,在命令行中使用节点REPL使用该导出的模块
> const myFunction = require('./path/to/the/file-containing-myFunction')`

之后你就可以像myFunction这样使用:

> myFunction()

答案 1 :(得分:0)

您可以将Node.js用于JavaScript CLI。

您可以传递这样的参数 -

node calendar.js --year 2020 --month 7

使用上面的命令process.argv[]数组将具有此值 -

['node', 'calendar.js', '--year', '2020', '--month', '7']

在您的代码中,可以使用数组process.argv[]来读取它 -

var x = +process.argv[2];  //For third argument
var y = +process.argv[3];  //For fourth argument

第一和第二个参数分别为nodecalendar.js

答案 2 :(得分:0)

考虑NodeJS,创建一个包装器脚本,其中导入带有myFunction的脚本(首先必须在原始文件中将module.exports.myFunction = myFunction导出),然后从process.args传递参数。跳过第一个元素(因为它始终是脚本的路径):

// argsrun.js
var myFunction = require('thescript.js').myFunction;
myFunction(process.args.slice(2));

并从CLI调用它:

node argsrun.js 1 2 3 4

答案 3 :(得分:0)

演示

'use strict';

function add( n1, n2 ) {
    return n1 + n2;
}

function subtract( n1, n2 ) {
    return n1 - n2;
}

在浏览器上:

调用函数调用:

window.add( 1, 2 );
window.subtract( 1, 2 );

使用Node.js:

从命令行调用该函数:

  

注意:这仅用于开发目的

     

请勿在制作中使用eval

将它放在文件的底部:

eval( process.argv[ 2 ] )

通过执行以下操作调用您的函数:

node index.js "add( 1, 2 )"
node index.js "subtract( 1, 2 )"

使用您的终端