我是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'对象是否会以某种方式丢失上下文?
答案 0 :(得分:2)
这是一个相当广泛的问题,部分基于意见。这个问题应该关闭,但我仍然想给你一些建议。
曾经有Active Record pattern,事实证明它很难维护。
解决方案是DAO pattern,但如果做得对,这会增加很多代码。
因此,相对最近(大约5 - 8年前,自领域驱动设计享有更广泛的受众),存储库模式可以在许多框架中看到。
这种模式似乎非常适合其他模式和技术。
所以,我建议你尝试一下,this tutorial应该是非常直接的。本教程下面是一个指向this github repository的注释。如果你没有那么倾向于完全基于node.js / mongoDB和纯JS,那么它就避免了咖啡脚本。