gpt4 book ai didi

javascript - 如何在查询器 Node js中调用另一个页面函数名称

转载 作者:行者123 更新时间:2023-12-05 04:39:49 25 4
gpt4 key购买 nike

我正在使用 nodejs 中的查询器制作 CLI。

所以在每个选择列表中,我必须给出退出选项,这样如果用户想要退出,他/她可以轻松退出。

所以我不得不一次又一次地编写 Exit 来避免这个问题,我创建了一个 Exit.js 文件并将 Exit 代码移到那里,这样我就可以一次又一次地使用代码。

退出.js

const executeQuery = require("../executeQuery");

function WantToExit() {
inquirer
.prompt([
{
name: "moreQuery",
type: "confirm",
message: "Want to do anything else?",
},
])
.then((answer) => {
if (answer.moreQuery) return executeQuery();
});
}

module.exports = WantToExit;

我的 executeQuery 代码是这样的

执行查询.js

const wantToExit = require("../Exit");
const Science = require("../Science");

function executetQuery() {
inquirer
.prompt([
{
type: "list",
name: "cmsType",
message: " Select Subject Options ",
default: false,
choices: ["Science", "Maths", "English", "Exit"],
},
])
.then((answers) => {
if (answers.cmsType === "Science") {
Science();
} else if (answers.cmsType === "Exit") {
wantToExit();
}
});
}

module.exports = executetQuery;

当我从 executeQuery 选项和 press Y 选项中选择 Exit 时,我从 Exit.js 收到此错误> 文件

if (answer.moreQuery) return executeQuery();
^
TypeError: executeQuery is not a function
at /home/admin/SchoolProject/src/Exit/index.js:13:36

最佳答案

您的方法存在问题,因为它产生了模块的循环依赖性。您在 ExecuteQuery.js 中“需要”wantToExit 并且在 Exit.js 中“需要”executeQuery()

我相信你想要实现的是不断询问用户他喜欢的主题,然后根据他/她的选择做一些事情,直到用户选择退出。

我建议在 ExecuteQuery.js 中使用 while 循环作为主要提示,并使用 bool 标志来检查用户是否要退出。

const wantToExit = require("../Exit");
const Science = require("../Science");

function executetQuery() {

let toStop = false;

// use a while loop
while(!toStop) {
inquirer
.prompt([
{
type: "list",
name: "cmsType",
message: " Select Subject Options ",
default: false,
choices: ["Science", "Maths", "English", "Exit"],
},
])
.then(async (answers) => {
if (answers.cmsType === "Science") {
// you can also set toStop = true here if you want to
// stop after first iteration
Science();

} else if (answers.cmsType === "Exit") {
// wantToExit() now returns a boolean flag
toStop = await wantToExit();
}
});
}

}

module.exports = executetQuery;

你的 Exit.js 应该是这样的


function WantToExit() {
inquirer
.prompt([
{
name: "moreQuery",
type: "confirm",
message: "Want to do anything else?",
},
])
.then((answer) => {
return !answer.moreQuery;
});
}

module.exports = WantToExit;

关于javascript - 如何在查询器 Node js中调用另一个页面函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70392531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com