Maison  >  Questions et réponses  >  le corps du texte

Dans Node.js, Inquirer se ferme avant que je fasse une sélection

J'essaie d'écrire une application en ligne de commande qui utilise un interrogateur pour afficher et finalement mettre à jour une base de données MySQL. Lorsque j'utilise le shell MySQL, mes fichiers de base de données semblent être en ordre, mais lorsque j'essaie de me connecter à ma base de données et de la manipuler via l'interrogateur, il semble que j'ai des problèmes.

Jusqu'à présent, il enregistrera qu'il est connecté à la bonne base de données, affichera les options du menu, puis quittera immédiatement sans me permettre de faire une sélection.

Si je commente le bloc const connect, l'interrogateur ne se fermera pas et ne me permettra pas de faire une sélection, mais l'application se brisera car la base de données n'est pas connectée.

Merci d'avance pour vos informations

Mon code actuel :

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粉947296325259 Il y a quelques jours292

répondre à tous(1)je répondrai

  • P粉676588738

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

    Je pense que votre connexion msql est à l'origine du problème. Vous n'avez pas saisi de mot de passe, provoquant ainsi le crash. Mais cela se produit de manière asynchrone, donc l'invite de l'interrogateur apparaîtra quand même, mais votre application plantera avant que vous fassiez votre sélection

    répondre
    0
  • Annulerrépondre