Javascript Node.js和SQLite3

Javascript Node.js和SQLite3,javascript,node.js,sqlite,Javascript,Node.js,Sqlite,我想创建一个web服务器,它将为我的移动应用程序返回数据。我对服务器使用Node.js,对数据库使用SQLite3。我创建了必须从sql返回数据的方法,但我不知道如何正确执行。据我所知,SQLite库中的所有方法都是异步的,所以我不知道如何对DB执行同步请求。我试着这样做: app.get('/getAllLeagues',function (req, res) { console.log("get") var obj = db.all("SELECT name FROM Leagues

我想创建一个web服务器,它将为我的移动应用程序返回数据。我对服务器使用Node.js,对数据库使用SQLite3。我创建了必须从sql返回数据的方法,但我不知道如何正确执行。据我所知,SQLite库中的所有方法都是异步的,所以我不知道如何对DB执行同步请求。我试着这样做:

app.get('/getAllLeagues',function (req, res) {
  console.log("get")
  var obj = db.all("SELECT name FROM Leagues")
})

但似乎obj仍然与db object相同,我假设您的应用程序是express server实例或类似的应用程序。数据库查询函数接受一个回调函数,该函数在查询的行准备就绪或发现错误后调用

app.get('/getAllLeagues',function (req, res) {
  console.log("get")
  var obj = db.all("SELECT name FROM Leagues",
    function(err, rows) {
        res.type('json');
        res.send(rows);
    });
});

为简单起见,没有错误处理。最好尝试..捕获类似的请求,以避免在找不到数据库或表的情况下导致应用程序崩溃。

为什么要同步执行此操作?我不知道db.all看起来是什么样子,但很有可能它将回调作为另一个参数,您可以在其中res.sendresults。