Dans Node.js, Inquirer se ferme avant que je fasse une sélection
P粉947296325
P粉947296325 2024-02-03 17:05:20
0
1
300

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粉947296325
P粉947296325

répondre à tous(1)
P粉676588738

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!