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

标签 javascript node.js mongodb

我对 JavaScript 还很陌生,我正忙着使用 Node 测试应用程序和 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();
}

完成我的示例的一些首选方法是什么?

另外,顺便说一句,即使 mongoClient.connect 中的数据库对象按预期工作,openConnection() 函数也始终返回 null。当脱离 mongoClient.connect() 函数时,“db”对象是否会以某种方式丢失上下文?

最佳答案

这是一个相当广泛的问题,部分基于观点。这个问题应该结束了,但我还是想给你一些建议。

曾经有Active Record pattern ,已被证明很难维护。

解决方案是 DAO pattern ,但是如果做得正确的话,这会添加很多代码。

因此,最近(大约 5-8 年前,因为领域驱动设计拥有了更广泛的受众)存储库模式出现在许多框架中。

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

所以,我建议您尝试的是 this tutorial这应该是非常简单的。教程下方有一条评论,指向 this github repository 。如果您不太愿意,它会避免 CoffeeScript ,因为它仅基于node.js/mongoDB和纯JS。

关于javascript - 我可以在 JavaScript 中查看哪些数据库实现模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30979280/

相关文章:

javascript - 未捕获的类型错误 : Cannot read property 'next_page' of undefined

javascript - 在 jquery 中使用 if else 语句和 .hover() 方法

javascript - Angularjs 无法在 Nodejs Express 中工作

c# - JSONObject 中每个 JSONnode 的 Unity

node.js - 如何使用另一个集合 Mongoose 查找子查询文档

mongodb - Grails过渡属性无法验证错误?

Javascript不支持64位整数,为什么new Date().getTime()返回41位数字?

javascript - npm start 没有获取更新的 package.json

node.js - Mongoose、Nodejs - 在一次 I/O 中替换多个文档?

java - MongoDB 中的 BasicDBObject 拒绝接受整数值