javascript - 尝试使用 Node 获取sqlite数据

标签 javascript jquery node.js sqlite

我在尝试将数据从 sqlite 数据库获取到字符串时遇到了一个小问题。这是代码:

router.get('/', function(req, res) {
    var db = req.db;
    var thisShouldWork = 'Hmmm';

    db.all('select rowid as id, value from test', function(err, rows) {
        rows.forEach(function(row){
            console.log(row.id + ": " + row.value);
            thisShouldWork += 'Heeee';
        });
    });
    thisShouldWork += 'What?';
    console.log(thisShouldWork.toString());

    res.send(thisShouldWork);
});

变量“thisShouldWork”仅输出“HmmmWhat?”在此代码的末尾,同时它也应该有一些“Heeee”。另外,console.log 打印了 3 行数据,因此 for 循环肯定正在执行。 我是否在没有意识到的情况下做错了什么,或者是否有不同/更好的方法来实现同样的目标?

最佳答案

回调是异步执行的。

无论您之后想要做什么,都必须在回调结束时移动:

router.get('/', function(req, res) {
    var db = req.db;
    var thisShouldWork = 'Hmmm';

    db.all('select rowid as id, value from test', function(err, rows) {
        rows.forEach(function(row){
            console.log(row.id + ": " + row.value);
            thisShouldWork += 'Heeee';
        });
        thisShouldWork += 'What?';
        console.log(thisShouldWork.toString());

        res.send(thisShouldWork);
    });
});

关于javascript - 尝试使用 Node 获取sqlite数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27093064/

相关文章:

php - 使用 php 识别点击了哪个按钮

node.js - React Native 中的黑名单模块不起作用

javascript - 默认情况下使用 JQuery 折叠表格行

php - 将 cookie 与 CURL 结合使用

javascript - 单击关闭所有其他子菜单

javascript - 如何使用react和node将字符串作为文件上传到谷歌驱动器

node.js - 您如何对写入/读取 dynamodb 并通过 AWS API 网关端点调用的 NodeJs Lambda 函数进行单元测试?

javascript - 将 json 值插入到下拉框中

javascript - 类型错误 : undefined is not an object (evaluating 'appState.remove' )

javascript - 动态改变href angular JS的路径