Ich versuche, eine Befehlszeilenanwendung zu schreiben, die einen Interrogator verwendet, um eine MySQL-Datenbank anzuzeigen und letztendlich zu aktualisieren. Wenn ich die MySQL-Shell verwende, scheinen meine Datenbankdateien in Ordnung zu sein, aber wenn ich versuche, eine Verbindung zu meiner Datenbank herzustellen und sie über den Abfrager zu bearbeiten, scheine ich Probleme zu haben.
Bislang wird protokolliert, dass eine Verbindung zur richtigen Datenbank besteht, die Menüoptionen angezeigt und das Programm dann sofort beendet, ohne dass ich eine Auswahl treffen kann.
Wenn ich den const connect-Block auskommentiere, wird der Abfrager nicht beendet und erlaubt mir nicht, eine Auswahl zu treffen, aber dann bricht die Anwendung ab, weil die Datenbank nicht verbunden ist.
Vielen Dank im Voraus für alle Einblicke
Mein aktueller Code:
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();
我认为您的 msql 连接导致了问题。您没有输入密码,因此导致崩溃。但它是异步发生的,因此无论如何都会出现询问者提示,但在您做出选择之前您的应用程序会崩溃