인터로게이터를 사용하여 mysql 데이터베이스를 표시하고 궁극적으로 업데이트하는 명령줄 애플리케이션을 작성하려고 합니다. mysql 쉘을 사용할 때 내 데이터베이스 파일이 순서대로 있는 것처럼 보이지만 내 데이터베이스에 연결하고 쿼리기를 통해 조작하려고 하면 문제가 있는 것 같습니다.
지금까지는 올바른 데이터베이스에 연결되었음을 기록하고 메뉴 옵션을 표시한 다음 선택을 허용하지 않고 즉시 종료됩니다.
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 연결이 문제의 원인인 것 같습니다. 비밀번호를 입력하지 않아 충돌이 발생했습니다. 그러나 이는 비동기적으로 발생하므로 질문자 프롬프트는 어쨌든 표시되지만 선택하기 전에 앱이 중단됩니다