我正在嘗試編寫一個命令行應(yīng)用程序,它使用詢問器來顯示并最終更新 mysql 數(shù)據(jù)庫。當(dāng)我使用 mysql shell 時(shí),我的數(shù)據(jù)庫文件似乎是有序的,但是當(dāng)我嘗試連接到我的數(shù)據(jù)庫并通過查詢器操作它時(shí),我似乎遇到了問題。
到目前為止,它將記錄它已連接到正確的數(shù)據(jù)庫,顯示菜單選項(xiàng),然后立即退出,不允許我做出選擇。
如果我注釋掉 const connect 代碼塊,那么查詢器將不會退出并允許我進(jìn)行選擇,但隨后應(yīng)用程序會因?yàn)闆]有連接數(shù)據(jù)庫而中斷。
預(yù)先感謝您的任何見解
我當(dāng)前的代碼:
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();
我認(rèn)為您的 msql 連接導(dǎo)致了問題。您沒有輸入密碼,因此導(dǎo)致崩潰。但它是異步發(fā)生的,因此無論如何都會出現(xiàn)詢問者提示,但在您做出選擇之前您的應(yīng)用程序會崩潰