搜索

首页  >  问答  >  正文

Node.js中,Inquirer在我做出选择之前退出

我正在尝试编写一个命令行应用程序,它使用询问器来显示并最终更新 mysql 数据库。当我使用 mysql shell 时,我的数据库文件似乎是有序的,但是当我尝试连接到我的数据库并通过查询器操作它时,我似乎遇到了问题。

到目前为止,它将记录它已连接到正确的数据库,显示菜单选项,然后立即退出,不允许我做出选择。

如果我注释掉 const connect 代码块,那么查询器将不会退出并允许我进行选择,但随后应用程序会因为没有连接数据库而中断。

预先感谢您的任何见解

我当前的代码:

require('console.table');
const inquirer = require ('inquirer');
const mysql = require ('mysql2');

const connect = mysql.createConnection(
    {
        host: 'localhost',
        user: 'root',
        password: '',
        database: 'employeeDB'
    },
    console.log('Connected to employeeDB')
);

function init(){
    menu();
};

async function menu(){
    await inquirer.prompt([
            {
                type: "list",
                name: "userChoice",
                message:"Menu:",
                choices: [
                    "View All Departments",
                    "View All Roles",
                    "View All Employees"
                ]
            },
        ])
        .then(({userChoice}) => {
            if (userChoice === "View All Departments"){
                viewDepartment()
            } else if (role === "View All Roles") {
                viewRole()
            } else {
                viewEmployee()
            }
        })
}

const viewDepartment = () => {
    connect.query(
        'SELECT * FROM department;',
        (err, results) => {
            console.table(results);
            menu();
        }
    )
};

const viewRole = () => {
    connect.query(
        'SELECT * FROM role;',
        (err, results) => {
            console.table(results);
            menu();
        }
    )
};

const viewEmployee = () => {
    connect.query(
        'SELECT * FROM employee;',
        (err, results) => {
            console.table(results);
            menu();
        }
    )
};

init();

P粉947296325P粉947296325290 天前323

全部回复(1)我来回复

  • P粉676588738

    P粉6765887382024-02-04 00:00:54

    我认为您的 msql 连接导致了问题。您没有输入密码,因此导致崩溃。但它是异步发生的,因此无论如何都会出现询问者提示,但在您做出选择之前您的应用程序会崩溃

    回复
    0
  • 取消回复