Tengo un formulario web de donde extraigo datos. El campo único debe ser el correo electrónico, pero si repito el correo electrónico, mi formulario se rompe y arroja un error, no sé cómo evitar que mi formulario se rompa, solo quiero un error. conectándose nuevamente a la base de datos usando npm start. Estoy buscando una validación o algo, soy principiante en node.js y trabajo con js
connection.query( "SELECT * FROM `employees` WHERE `email`= ?", [employee.email], function (err, row) { if (err) throw err; else { if (row && row.length) { error.push("Email already exists!"); //this does nothing return console.log("Email is existing already!"); } } } ); if(error.length === 0){ // insert data in the table } else { res.status(400).send(error); console.log("Error"); }Quiero error.push("¡El correo electrónico ya existe!"); para modificar mi matriz de errores para que no ingrese en el primer if (error.length === 0)
connection.query es una función asíncrona. Entonces, error.push ocurre después de su if .
Soluciones posibles -
async/await . Función de ejemplo: const executeQuery = (con, query, params = null) => { return new Promise((resolve, reject) => { con.query(query, params, (err, res) => { if (err) { reject(err); return } resolve(res); }); }) }; Puede ejecutar esto, y puede decir await executeQuery(con,query,param) y continuar desde allí.