繁体   English   中英

从终端在 node.js 文件中运行单独的函数

[英]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 开始( 0node的完整路径, 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM