Javascript 从主JS菜单运行其他JS

Javascript 从主JS菜单运行其他JS,javascript,node.js,Javascript,Node.js,有一个主菜单,当用户选择一个选项时,其他JS脚本将从中执行。不确定如何从主JS菜单执行JS。我只想退出菜单,然后马上运行JS。我还需要导出JS并以某种方式执行它吗 runOptions(); var runOptions = function () { inquirer.prompt({ name: "action", type: "list", message: "What do you want to do?", cho

有一个主菜单,当用户选择一个选项时,其他JS脚本将从中执行。不确定如何从主JS菜单执行JS。我只想退出菜单,然后马上运行JS。我还需要导出JS并以某种方式执行它吗

runOptions();
var runOptions = function () {
    inquirer.prompt({
        name: "action",
        type: "list",
        message: "What do you want to do?",
        choices: [
            "Perform Magic",
            "Go To Bed",
            "Have a Vodka Martini"

        ]
    }).then(function (answer) {
        switch (answer.action) {
            case "Perform Magic":
                runMagicman();
                break;

            case "Go To Bed":
                runSleepyTime();
                break;

            case "Have a Vodka Martini":
                runGetDrunk();
                break;
        }
    });
}

var runMagicman = function () {
// Exit this menu and run magicman.js
}

var runSleepyTime = function () {
// Exit this menu and run sleepytime.js    
}

var runGetDrunk = function () {
// Exit this menu and run getdrunknow.js
}

如果包含runOptions的文件是主入口点(表示您正在执行node./thisFile.js),则不需要导出runOptions函数。我们想要导出函数或类的主要原因是根据它们的特性或用途对它们进行分组

另外,执行类似这样的动态操作的一个巧妙技巧是使用.apply(),它将为每个操作调用具有灵活参数的函数

runOptions();
var runOptions=函数(){
询问者提示({
名称:“行动”,
键入:“列表”,
信息:“你想做什么?”,
选择:[
“表演魔术”,
“上床睡觉”,
“来杯伏特加马提尼”
]
}).然后(函数(答案){
const functionMapping={“表演魔术”:runMagicman,“上床睡觉”:runSleepyTime,“喝伏特加马提尼”:rungetdunk};
const parameterMapping={“表演魔术”:[answer.arg1],“上床睡觉”:runSleepyTime:[answer.arg1,answer.arg2,answer.arg3],“喝一杯伏特加马提尼酒”:[answer.arg1,answer.arg2];
if(函数映射[answer.action]){
返回函数映射[answer.action].apply(null,参数映射[answer.action]);
}
抛出“未找到操作”;
});
}
var runMagicman=函数(arg1){
//退出此菜单并运行magicman.js
}
var runSleepyTime=函数(arg1、arg2、arg3){
//退出此菜单并运行sleepytime.js
}
var rungetdunk=函数(arg1、arg2){
//退出此菜单并运行GetNow.js

}
完美答案!