我有一个javascript文件,正在其中运行某些节点任务,并且希望能够根据我触发的终端命令单独运行它们。
例如,我的nodejs文件myFile
代码可能如下所示:
const mysql = require('mysql');
const fs = require('fs');
const getDbData = () => {
...
...
}
const fileTransform = () => {
file transformation functionality
}
我希望能够分别运行每个功能,以便可以node myFile.js getDbData
在终端中说。我是否需要导出每个功能才能执行此操作?
您可以在node
命令行上为脚本提供命令行参数。您在process.argv
数组中收到它们。您的参数从索引2开始(0
是的完整路径node
,1
是脚本的完整路径)。
因此,例如:
switch (process.argv[2]) {
case "getData":
getData();
break;
case "etlData":
etlData();
break;
// ...
}
请注意,即使Node实参在实际命令行上位于脚本之前,您的实参也确实从索引2开始。例如:
节点--use-strict your-script.js
...仍将具有node
in的完整路径和in中process.argv[0]
脚本的完整路径process.argv[1]
。该--use-strict
参数根本不在数组中。
或者,您可以将函数放在对象上,然后使用参数作为键:
function getData() {
// ...
}
function getData() {
// ...
}
const functions = {
getData,
etlData
};
const fn = functions[process.argv[2]] || () => { console.log("Invalid option"); };
fn();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句