Tengo consultas anidadas de mysql en mi aplicación express.js y necesito obtener la identificación insertada de todas las consultas, pero solo obtuve la identificación insertada de la consulta global. Obtuve este error:
TypeError: no se puede leer la propiedad 'insertId' de undefined
en línea :
vid = resultados.insertId
mi código :
let vid="" con.query('INSERT INTO table1 SET ....', function(err, results, fields) { let res1=results.insertId con.query("insert into table2 ... res1='" + res1 + "'", function(err0, results, fields) { vid = results.insertId if (err0) { console.log( err0) } }) if (err) { return res.status(500).json({ message: 'Error saving record', err: err }); } return res.json({ message: 'saved', id: results.insertId, vid: vid }); });Debe mover el retorno res.json a la devolución de llamada "más profunda"
let vid="" con.query('INSERT INTO table1 SET ....', function(err, results, fields) { let res1=results.insertId con.query("insert into table2 ... res1='" + res1 + "'", function(err0, results, fields) { vid = results.insertId if (err0) { console.log( err0) } // ======= MOVED HERE ======== return res.json({ message: 'saved', id: res1, vid: vid }); }) if (err) { return res.status(500).json({ message: 'Error saving record', err: err }); } })