以下是我在node.js中使用的连接字符串和选项,用于连接mongodb。我的web应用程序一直在尝试,如果mongodb服务器坏了,就永远不会返回。我在哪里设置连接超时,这样我就可以说数据库服务器关闭了?(当mongo服务器启动时,以下代码可以完美地工作)。
(function(database) {
var mongodb = require("mongodb");
database.ObjectID = mongodb.ObjectID;
var mongoUrl = "mongodb://localhost:27017/mydb";
var dbconn = null;
database.getDBConn = function(next){
if(dbconn){ next(null, dbconn); return; } //already connected: return dbconn
mongodb.MongoClient.connect(mongoUrl,
{server: {socketOptions: {connectTimeoutMS: 500}}}, function(err, database){
if(err){ next(err, null); return; } //connection fail: return error
dbconn = {db: database,
movies: database.collection("movie") };
next(null, dbconn); //connection success: return dbconn
});
}
})(module.exports);
查看http://mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.html我会说使用
MongoClient.prototype.close
方法来检查连接是否已关闭。如果连接已关闭,则发出数据库服务器关闭的通知。