我正在使用node-mongodb-native
连接到本地 MongoDB 实例。我在思考如何处理连接时遇到了一些麻烦。我试图将 MongoDB 的东西抽象成一个自定义Database
模块:
数据库.js
var mongo = require('mongodb');
var Database = function() { return this; };
Database.prototype.doStuff = function doStuff(callback) {
mongo.connect('mongodb://127.0.0.1:27017/testdb', function(err, conn) {
conn.collection('test', function(err, coll) {
coll.find({}, function(err, cursor) {
cursor.toArray(function(err, items) {
conn.close();
return callback(err, items);
});
});
});
});
};
// Testing
new Database().doStuff(function(err, items) {
console.log(err, items);
});
每种方法都需要新的连接吗?看起来它会很快变得昂贵。我想也许连接会在构造函数中建立,随后的调用将利用现有的连接。
下一个问题可能更像是一个设计问题,但考虑到连接设置和拆除可能是昂贵的操作,我正在考虑添加一个对我的应用程序是全局的数据库对象,可以用来调用数据库。这看起来合理吗?
请注意,上面的代码大致取自这里。谢谢你的帮助。