这是一个非常基本的问题(可能是一个重复的问题),但是我正在尝试使用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);
});
});
答案 0 :(得分:1)
rows
保留sql查询中的所有数据。您必须将一个函数传递给db.all
采用参数(err, rows)
。检索数据后将调用此函数。
听起来好像对如何访问传递的函数范围之外的数据感到困惑:
function(err, rows) {
if (err) {
throw err;
}
this.data = [];
rows.forEach((row) =>{
this.data.push(row);
});
}
为此,您可以在其作用域之外定义变量以对其进行编辑并为其赋值。
this.data
将不起作用,因为this
指的是您无法访问function(err, rows)
之外的匿名db.all
您还可以按照评论中的说明将信息发送到前端