0

我设法创建了一个模块来处理所有数据库调用。它使用这个库:https ://github.com/developmentseed/node-sqlite3

我的问题如下。每次我打电话时,我都需要确保数据库存在,如果不存在则创建它。另外,由于所有调用都是异步的,我最终在回调函数中加载了大量函数......等等。

它看起来像这样:

getUsers : function (callback){
    var _aUsers = [];
    var that = this;
    this._setupDb(function(){
        var db = that.db;

        db.all("SELECT * FROM t_client", function(err, rows) {
            rows.forEach(function (row) {
                _aUsers.push({"cli_id":row.id,"cli_name":row.cli_name,"cli_path":row.cli_path});

            });
            callback(_aUsers);
        });
    });
},  

那么,只有当数据库准备好并完全创建(如果它还不存在)时,我有什么方法可以导出我的模块?

有没有人看到解决“异步”问题的方法?

4

2 回答 2

0

您也可以尝试使用承诺纤维......

于 2013-04-29T23:40:55.750 回答
0

我不这么认为。如果你让它同步,你就失去了优势。Javascript函数就是这样的。这种情况称为回调地狱。如果您在管理回调时遇到问题,那么您可以使用这些库:

请参阅这些指南以了解异步编程的基础知识

于 2013-04-29T18:04:00.113 回答