Tengo una aplicación que consulta una base de datos mysql. Comienza:
function init() { console.log(` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ What would you like to do? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `); return inquirer .prompt({ type: "list", name: "options", message: "Select one", choices: list, }) .then((data) => { return redirectQuestion(data.options); }) .then(() => init()) .catch(err => { console.log(err); }) } init()La función redirectQuestion lleva al usuario a una función con cambios de casos para encontrar la consulta correcta, por ejemplo:
class View { constructor(table = '') { this.table = table this.statement = `SELECT * FROM ${this.table} ORDER BY id` } getTable() { db.query( this.statement, (err, results, fields) => { if (err) { console.log("There was an error with your request") } console.table(results) } ) } }El problema es que después de que esto se ejecuta, hay una llamada recursiva a init() para que aparezcan las opciones nuevamente. Las opciones, en lugar de aparecer debajo de los datos de la base de datos, aparecen encima de ellos, y si me muevo para seleccionar otras opciones, se creará otra tabla que sobrescribirá la parte inferior de los datos.
Ahora, probablemente sea una forma menos que deseable de escribir la función, pero necesito tener una forma de recuperar la tabla y aún mostrar los datos, y no estoy seguro de qué está fallando.