Node.js //管理sqlite数据库的模块

时间:2013-04-29 13:49:30

标签: node.js sqlite node-modules

我设法创建一个模块来处理所有数据库调用。它使用这个lib: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);
        });
    });
},  

那么,有没有什么方法可以在数据库准备就绪时导出我的模块,如果它还不存在则完全创建?

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您也可以尝试使用promisesfibers ...