Estoy tratando de obtener el objeto que inserté. Me refiero al ejemplo en la documentación. Pero siempre obtengo un "indefinido". ¿Qué estoy haciendo mal? ¿O ya no es posible?
En mi paquete.json está la siguiente biblioteca "sqlite3": "^5.0.8" .
Mi código (pegar y darme la última identificación insertada)
sql = `INSERT INTO comment_hearts(post_id, comment_id, user_id, CREATED_AT) VALUES (?,?,?,?)` db.run(sql, [1, 100, 10, new Date().toString()], (err) => { if (err) { console.log(err.message)}; console.log("THIS.lastID",this.lastID) // get always undefined });Debe pasar una función de devolución de llamada con function () { ... } para que this.lastID no esté indefinido.
db.run(sql, [1, 100, 10, new Date().toString()], function(err) { if (err) { console.log(err.message)}; console.log("THIS.lastID",this.lastID); });No utilice la función de flecha. Pase como devolución de llamada una function() {...} . La razón es el contexto de esto. La expresión de una función flecha no tiene esto propio.
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions