我正在嘗試編寫一個命令列應用程序,它使用詢問器來顯示並最終更新 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();
我認為您的 msql 連接導致了問題。您沒有輸入密碼,因此導致當機。但它是非同步發生的,因此無論如何都會出現詢問者提示,但在您做出選擇之前您的應用程式會崩潰