如何为mongodb thru node.js设置连接超时

时间:2014-04-27 14:18:38

标签: node.js mongodb connection timeout

以下是我使用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);

1 个答案:

答案 0 :(得分:0)

查看http://mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.html我会说使用


    MongoClient.prototype.close

检查连接是否已关闭的方法。如果连接已关闭,则发出数据库服务器已关闭的通知。

相关问题