以下是我使用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);
答案 0 :(得分:0)
查看http://mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.html我会说使用
MongoClient.prototype.close
检查连接是否已关闭的方法。如果连接已关闭,则发出数据库服务器已关闭的通知。