首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从对sqlite3.Database.all方法的调用中检索数据?

如何从对sqlite3.Database.all方法的调用中检索数据?
EN

Stack Overflow用户
提问于 2018-08-11 06:06:40
回答 1查看 15关注 0票数 0

这是一个非常基本的问题(可能是重复的),但我正在尝试使用javascript interface to sqlite3进行sql查询。文档给出了进行查询的示例,但它们只将数据打印到控制台。我希望将数据存储在一个新的变量中,并继续(最终)使用d3进行绘图。

这是我到目前为止所掌握的。我在某处读到过this关键字在这里可能很有用。请假设db是到sqlite3数据库的开放连接,并且sql是一些有效的sql。

代码语言:javascript
复制
var data = db.all(sql, [], function(err, rows) {
    if (err) {
        throw err;
    }

    this.data = [];
    rows.forEach((row) =>{
        this.data.push(row);
    });
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-11 06:31:06

rows保存来自sql查询的所有数据。必须将一个接受参数(err, rows)的函数传递给db.all。此函数将在检索数据后调用。

听起来您似乎对如何访问您要传递的函数范围之外的数据感到困惑:

代码语言:javascript
复制
function(err, rows) {
    if (err) {
        throw err;
    }

    this.data = [];
    rows.forEach((row) =>{
        this.data.push(row);
    });
}

为此,您可以在其作用域之外定义变量,以便对其进行编辑和赋值。

this.data将不起作用,因为this引用了您在db.all之外无权访问的匿名function(err, rows)

您也可以将信息发送到前端,如评论中所述

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51794566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档