Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 节点,Mongoose连接到IBM Bluemix Compose for Mongodb_Node.js_Mongodb_Ibm Cloud_Compose - Fatal编程技术网

Node.js 节点,Mongoose连接到IBM Bluemix Compose for Mongodb

Node.js 节点,Mongoose连接到IBM Bluemix Compose for Mongodb,node.js,mongodb,ibm-cloud,compose,Node.js,Mongodb,Ibm Cloud,Compose,你如何使用猫鼬: 这里的例子是:效果很好。 下面是示例mongo代码的简化片段: MongoClient.connect(credentials.uri, { // step 1: connect mongos: {...}, function(err, db) { if (err) { console.log(err); } else { mongodb = db.db("examples"); /

你如何使用猫鼬:

这里的例子是:效果很好。 下面是示例mongo代码的简化片段:

MongoClient.connect(credentials.uri, { // step 1: connect
    mongos: {...},
    function(err, db) {
        if (err) {
            console.log(err);
        } else {
            mongodb = db.db("examples"); // step 2: create or use database
        }
    }
);
我找不到使用两步连接过程的mongoose示例

我注意到Compose for Mongodb不支持直接连接到现有示例数据库。 正在连接到此url:

mongodb://admin:PW@bluemix...4.dblayer.com:22601,bluemix...0.dblayer.com:22601/examples'

“MongoError:authentication fail”(MongoError:authentication fail)中的结果。

以下是使用Compose for MongoDB和Mongoose的示例摘录:

var mongoDbUrl, mongoDbOptions = {};
var mongoDbCredentials = appEnv.getServiceCreds("mycomposedb").credentials;
var ca = [new Buffer(mongoDbCredentials.ca_certificate_base64, 'base64')];
mongoDbUrl = mongoDbCredentials.uri;
mongoDbOptions = {
  mongos: {
    ssl: true,
    sslValidate: true,
    sslCA: ca,
    poolSize: 1,
    reconnectTries: 1
  }
};
console.log("Connecting to", mongoDbUrl);
mongoose.connect(mongoDbUrl, mongoDbOptions); // connect to our database
然后,您可以使用切换数据库


以下是使用Compose对MongoDB和Mongoose进行测试的样本摘录:

var mongoDbUrl, mongoDbOptions = {};
var mongoDbCredentials = appEnv.getServiceCreds("mycomposedb").credentials;
var ca = [new Buffer(mongoDbCredentials.ca_certificate_base64, 'base64')];
mongoDbUrl = mongoDbCredentials.uri;
mongoDbOptions = {
  mongos: {
    ssl: true,
    sslValidate: true,
    sslCA: ca,
    poolSize: 1,
    reconnectTries: 1
  }
};
console.log("Connecting to", mongoDbUrl);
mongoose.connect(mongoDbUrl, mongoDbOptions); // connect to our database
然后,您可以使用切换数据库


无论是Frederic的代码片段(使用Mongo驱动程序),还是他链接的源代码(连接到admin db),都不能使用mongoose连接到自定义MongoDB

要使用mongooseibmcomose连接到自定义数据库,必须提供与Compose提供的默认连接字符串不同的连接字符串

以下连接字符串模板有效:

var connectionUrl = 'mongodb://<username>:<password>@<hostname>:<port>,<hostname-n>:<port-n>/<db-name>?ssl=true&authSource=admin';

我在

上提供了Frederic的代码片段(使用Mongo驱动程序)和他链接的源代码(连接到admin db)都不能使用mongoose连接到自定义MongoDB

要使用mongooseibmcomose连接到自定义数据库,必须提供与Compose提供的默认连接字符串不同的连接字符串

以下连接字符串模板有效:

var connectionUrl = 'mongodb://<username>:<password>@<hostname>:<port>,<hostname-n>:<port-n>/<db-name>?ssl=true&authSource=admin';
我已经准备好了