[英]Run separate functions in node.js file from terminal
我有一个 javascript 文件,我正在其中运行一些节点任务,并且希望能够根据我触发的终端命令分别运行它们。
例如,我的 nodejs 文件myFile
代码可能如下所示:
const mysql = require('mysql');
const fs = require('fs');
const getDbData = () => {
...
...
}
const fileTransform = () => {
file transformation functionality
}
我希望能够分别运行每个函数,这样我就可以在终端中说node myFile.js getDbData
。 我是否需要导出每个函数才能执行此操作?
尝试使用process.argv
。
https://stackabuse.com/command-line-arguments-in-node-js/
解析命令行参数,例如,使用eval()
评估它们
您可以在node
命令行上为脚本提供命令行参数。 您在process.argv
数组中接收它们。 您的参数从索引 2 开始( 0
是node
的完整路径, 1
是脚本的完整路径)。
所以例如:
switch (process.argv[2]) {
case "getData":
getData();
break;
case "etlData":
etlData();
break;
// ...
}
请注意,即使 Node 参数在实际命令行上的脚本之前,您的参数也确实从索引 2 开始。 例如:
node --use-strict your-script.js
...仍将在process.argv[0]
node
的完整路径,并在process.argv[1]
脚本的完整路径。 --use-strict
参数根本不在数组中。
或者您可以将您的函数放在一个对象上并使用参数作为键:
function getData() {
// ...
}
function getData() {
// ...
}
const functions = {
getData,
etlData
};
const fn = functions[process.argv[2]] || () => { console.log("Invalid option"); };
fn();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.