Estoy tratando de pasar una solicitud de SQLite almacenada en una variable a una plantilla pug. Mi programa funciona bien si se pasa un valor de cadena a mi vista pug. Pero siempre obtengo una variable vacía o indefinida en mi html cuando uso el resultado de la solicitud almacenada. He estado leyendo muchas publicaciones y probé varias explicaciones, pero todavía no puedo entender qué es lo que está mal con mi código.
Aquí está mi código de servidor
router.get('/mydata', function(req, res){ var sqlite3 = require('sqlite3').verbose(); var mydb = new sqlite3.Database('mydb'); var data = {}; mydb.serialize(function() { var rowset = mydb.each("SELECT * FROM mytable", function(err, row) { data[row.id] = { name: row.name, }; res.render('mydata', { data: data }); }); }); });aquí está mi código pug
script. var data = dataPrecisión: los datos del objeto están bien cuando los imprimo en el lado del servidor.
Muchas gracias por cualquier ayuda (y lo siento si es un problema de principiante asíncrono...)
// db.js var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database('mydb'); ... module.exports = db; // routers var db = require('db'); router.get('/mydata', function(req, res, next) { // add error handler db.all('select * from mytable', function(err, rows) { if (err) return next(err); var data = {}; rows.forEach(function(row) { data[row.id] = row.name }); res.render('mydata', {data}); }) });