Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试使用节点获取sqlite数据_Javascript_Jquery_Node.js_Sqlite - Fatal编程技术网

Javascript 尝试使用节点获取sqlite数据

Javascript 尝试使用节点获取sqlite数据,javascript,jquery,node.js,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){

我在尝试将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);
    });
});

嗨,谢谢你的回答!我刚试过,现在效果很好。