我可以在JavaScript中查看数据库实现的哪些模式?

时间:2015-06-22 11:49:27

标签: javascript node.js mongodb

我是JavaScript的新手,我正在忙着使用节点测试应用程序和MongoDB。

我正处于我想从应用程序的数据库端开始,但我不确定这种堆栈中最常用的模式,更重要的是,为什么。

到目前为止,我已经有了这个:

var mongoClient = mongodb.MongoClient;
var mongoUrl = 'mongodb://localhost:27017/MyDB'

    function openConnection() {
        var database;
        mongoClient.connect(mongoUrl, function (err, db) {
            if (err) {
                return null;
            } else {
                database = db;
            }
        });
        return database;
    }

我最初的想法是拥有一个connect()函数,并在各自的函数中执行插入/更新请求,如:

function addPerson() {
   var db = openConnection();
   db.doInsert(myObject);
   db.close();
}

完成我的例子有哪些首选方法?

另外,在旁注中,openConnection()函数始终返回null,即使mongoClient.connect中的数据库对象按预期工作。当出mongoClient.connect()函数时,'db'对象是否会以某种方式丢失上下文?

1 个答案:

答案 0 :(得分:2)

这是一个相当广泛的问题,部分基于意见。这个问题应该关闭,但我仍然想给你一些建议。

曾经有Active Record pattern,事实证明它很难维护。

解决方案是DAO pattern,但如果做得对,这会增加很多代码。

因此,相对最近(大约5 - 8年前,自领域驱动设计享有更广泛的受众),存储库模式可以在许多框架中看到。

这种模式似乎非常适合其他模式和技术。

所以,我建议你尝试一下,this tutorial应该是非常直接的。本教程下面是一个指向this github repository的注释。如果你没有那么倾向于完全基于node.js / mongoDB和纯JS,那么它就避免了咖啡脚本。