mrw*_*ter 6 javascript mongodb node.js
我正在使用node-mongodb-native驱动程序,我正在寻找一种方法来打开持久数据库连接,而不是每次打开/关闭它.
简化的连接可能如下所示......
var DB = new mongo.Db('vows', new mongo.Server("127.0.0.1", 27017, {})),
connection = DB.open(function(err, db) {
// Here we have access to db
});
Run Code Online (Sandbox Code Playgroud)
如何使我的应用程序中的任何模块都可以访问db对象?而不是必须单独打开每个模块的连接?
可以使用module.exports完成吗?还是一个全局变量?
小智 5
我的解决方案
getClient = function(cb) {
if(typeof client !== "undefined") {
return cb(null, client);
} else {
db.open(function(err, cli) {
client = cli;
getClient(cb);
});
}
}
Run Code Online (Sandbox Code Playgroud)
现在,而不是
db.open(function(err, client) {
...stuff...
});
Run Code Online (Sandbox Code Playgroud)
做:
getClient(function(err, client) {
...stuff...
});
Run Code Online (Sandbox Code Playgroud)
您的第一个数据库调用打开一个连接,其他人使用该连接.
顺便说一句:关于检查客户端是否还活着的建议?
编辑:不要使用 mongoose,使用类似mongo-col或 的东西mongo-client。然后在您的应用程序中打开一个客户端。我有./client.js导出正确打开和配置的 mongo 客户端的文件。
Mongoose是 mongodb 之上的可靠抽象,可以让您更轻松地处理 mongodb。值得一看。
不过,您真正想做的是每次使用 mongo 执行任何操作时重新打开客户端。
您不与任何其他数据库保持开放连接。
只需将您的DB代码与一些辅助/包装函数一起放入模块中即可。
| 归档时间: |
|
| 查看次数: |
3804 次 |
| 最近记录: |