Tengo una duda muy sencilla que llevo días sin poder resolver. Escribí el siguiente bloque de código simple para dar un ejemplo.
var mysql = require("mysql") var connection = mysql.createConnection({ host: "localhost", user: "***", password: "***", database: "***", charset: "utf8mb4" }) var testArr = ["banana", "apple", "orange", "strawberry"] for (let fruit of testArr) { console.log("fruit check:" + fruit) var fruitName = connection.escape(fruit) var sql = "INSERT INTO test (name) VALUES (" + fruitName + ")"; connection.query(sql, function (err, result) { if (err) throw err; console.log("1 record inserted"); }); }Lo único que quiero hacer aquí es proceder secuencialmente después de ingresar al bucle for. Por el momento, el lado de la consola viene de la siguiente manera;
fruit check:banana fruit check:apple fruit check:orange fruit check:strawberry 1 record inserted 1 record inserted 1 record inserted 1 record insertedQuiero que venga así:
fruit check:banana 1 record inserted fruit check:apple 1 record inserted fruit check:orange 1 record inserted fruit check:strawberry 1 record insertedPruebe este enfoque con async - await await y mysql2 .
Cambié la consulta a una declaración preparada.
const mysql = require('mysql2/promise'); const loadData = async () => { try { var connection = await mysql.createConnection({ host: 'localhost', user: '***', password: '***', database: '***', charset: 'utf8mb4', }); var testArr = ['banana', 'apple', 'orange', 'strawberry']; for (let fruit of testArr) { console.log('fruit check:' + fruit); var sql = 'INSERT INTO test (name) VALUES (?)'; await connection.execute(sql, [fruit]) console.log('1 record inserted'); } } catch (err) { throw err; // Or do something else with the error... } }; loadData();