我正在尝试将存储到变量中的SQLite请求传递给pug模板。 如果使用传递给我的pug视图的字符串值,我的程序工作正常。但是当我使用存储的请求结果时,我总是在我的html中得到一个空的或未定义的变量。 我一直在阅读很多帖子并尝试了多种解释,但我仍然无法弄清楚我的代码有什么问题。
这是我的服务器代码
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
});
});
});
});
这是我的哈巴狗代码
script.
var data = data
精度:当我在服务器端打印时,对象数据很好。
非常感谢您的帮助(如果这是一个异步的问题,那就很抱歉......)
答案 0 :(得分:1)
// 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});
})
});