这是一个非常基本的问题(可能是重复的),但我正在尝试使用javascript interface to sqlite3
进行sql查询。文档给出了进行查询的示例,但它们只将数据打印到控制台。我希望将数据存储在一个新的变量中,并继续(最终)使用d3进行绘图。
这是我到目前为止所掌握的。我在某处读到过this
关键字在这里可能很有用。请假设db
是到sqlite3数据库的开放连接,并且sql
是一些有效的sql。
var data = db.all(sql, [], function(err, rows) {
if (err) {
throw err;
}
this.data = [];
rows.forEach((row) =>{
this.data.push(row);
});
});
发布于 2018-08-11 06:31:06
rows
保存来自sql查询的所有数据。必须将一个接受参数(err, rows)
的函数传递给db.all
。此函数将在检索数据后调用。
听起来您似乎对如何访问您要传递的函数范围之外的数据感到困惑:
function(err, rows) {
if (err) {
throw err;
}
this.data = [];
rows.forEach((row) =>{
this.data.push(row);
});
}
为此,您可以在其作用域之外定义变量,以便对其进行编辑和赋值。
this.data
将不起作用,因为this
引用了您在db.all
之外无权访问的匿名function(err, rows)
您也可以将信息发送到前端,如评论中所述
https://stackoverflow.com/questions/51794566
复制相似问题