仍然无法将一个Openshift应用程序连接到另一个Openshift应用程序的MongoDB数据库

时间:2016-04-14 18:25:48

标签: node.js mongodb

遵循此处提供的建议后:

(OpenShift) Sharing MongoDB between Apps not possible anymore?

......简而言之就是这个 - > "您需要将应用程序创建为可伸缩的,然后添加MongoDB以使其正常工作。然后,MongoDB将使用它自己的IP地址和端口号进入它自己的设备(记得使用这个端口号,否则什么都行不通。)"

...我仍然无法将我的Node.js应用程序成功连接到位于Openshift中另一个Node.js应用程序上的MongoDB数据库。

我尝试过以下建议的主机字符串排列:

  1. 本地主机
  2. 128.xxx.xxx.xxx
  3. [24个字符哈希] -myapp-mydomain.rhcloud.com
  4. ...所有结果相同。没有联系。

    以下是调用设置数据库连接的代码...

    dbProvider = function(host, port, user, pass) {
        console.re.log("Attempting to create a DB instance...");
        this.db = new Db(process.env.OPENSHIFT_MONGODB_EXTDB_DBNAME, new Server(host, port, { auto_reconnect: true }, {}));
        console.re.log("created the DB instance...");
        if(this.db!= null){
            console.re.log("successfully connected to remote db %s at %s:%s",this.db,host,port);
            this.db.open(function(error, db){
                if(error){
                    console.re.log("error %s attempting to open the db at %s:%s",error,host,port);
                }
                else{
                    db.authenticate(user, pass, function(error, result) { //db.authenticate(user, pass, function(error, result)
                        if(error){
                            console.re.log("error %s attempting to connect to remote db at %s:%s using user %s",error,host,port,user);
                        }
                        else{
                            console.re.log("successfully connected to remote db at %s:%s using user %s",host,port,user);
                        }
                    });
                }
            });
        }
        else{
            console.re.log("unable to connect to remote db at %s:%s",host,port);
        }
    }
    

    上面的代码在db.open()的回调中失败,并带有空错误对象。

    检查 this.db 对象后,我们会看到以下内容:

    {
        "domain": null,
        "_events": {},
        "_maxListeners": 10,
        "databaseName": "myDb",
        "serverConfig": {
            "domain": null,
            "_events": {},
            "_maxListeners": 10,
            "host": "xxxxxxxxxxxxxxxxxxxxxxxx-myApp-myDomain.rhcloud.com",
            "port": 12345,
            "options": {
                "auto_reconnect": true
            },
            "internalMaster": false,
            "connected": false,
            "poolSize": 5,
            "disableDriverBSONSizeCheck": false,
            "ssl": false,
            "_used": true,
            "_readPreference": null,
            "socketOptions": {},
            "logger": {
                "error": "[Function]",
                "log": "[Function]",
                "debug": "[Function]"
            },
            "eventHandlers": {
                "error": [],
                "parseError": [],
                "poolReady": [],
                "message": [],
                "close": [],
                "timeout": []
            },
            "_serverState": "disconnected",
            "_state": {
                "runtimeStats": {
                    "queryStats": {
                        "m_n": 0,
                        "m_oldM": 0,
                        "m_oldS": 0,
                        "m_newM": 0,
                        "m_newS": 0,
                        "numDataValues": 0,
                        "mean": 0,
                        "variance": 0,
                        "standardDeviation": 0,
                        "sScore": 0
                    }
                }
            },
            "recordQueryStats": false
        },
        "options": {},
        "_applicationClosed": false,
        "bsonLib": {
            "Code": "[Function]",
            "Symbol": "[Function]",
            "BSON": "[Function]",
            "DBRef": "[Function]",
            "Binary": "[Function]",
            "ObjectID": "[Function]",
            "Long": "[Function]",
            "Timestamp": "[Function]",
            "Double": "[Function]",
            "MinKey": "[Function]",
            "MaxKey": "[Function]"
        },
        "bson": {},
        "bson_deserializer": "[ Circular {bsonLib} ]",
        "bson_serializer": "[ Circular {bsonLib} ]",
        "_state": "disconnected",
        "pkFactory": "[Function]",
        "forceServerObjectId": false,
        "safe": false,
        "notReplied": {},
        "isInitializing": true,
        "auths": [],
        "openCalled": false,
        "commands": [],
        "_callBackStore": {
            "domain": null,
            "_events": {},
            "_maxListeners": 10,
            "_notReplied": {}
        },
        "logger": "[ Circular {logger} ]",
        "slaveOk": false,
        "tag": 1460656848883,
        "eventHandlers": {
            "error": [],
            "parseError": [],
            "poolReady": [],
            "message": [],
            "close": []
        },
        "serializeFunctions": false,
        "raw": false,
        "recordQueryStats": false,
        "reaperEnabled": false,
        "_lastReaperTimestamp": 1460656848883,
        "retryMiliSeconds": 1000,
        "numberOfRetries": 60,
        "reaperInterval": 10000,
        "reaperTimeout": 30000
    

    }

    注意:host,port和databaseName字段已经过修改以保护隐私。

    此db对象与正确连接的db对象的区别仅在于两个字段...

    ... db.serverConfig._serverState db._state 等于'已连接'与'断开连接'

    感谢任何已成功完成我想要做的人的听证会。

    谢谢!

0 个答案:

没有答案