我已经从市场创建了服务实例,例如mongoDB 的实例和我的问题,如果我想在本地(在我的本地机器上)开发并连接到这个服务实例,我该怎么做?
我想根据创建的支持服务实例测试我的应用程序,我如何才能简单地做到这一点......? 例子会很有帮助
更新: 我尝试连接到 cloud foundry 上的 MongoDB 实例 从我的本地应用程序。 (如果我放置应用程序,我能够成功连接,但我想从我的本地电脑连接,即在本地运行我的应用程序)
I got the following db (json) credentials:
{
"mongodb": [
{
"credentials": {
"dbname": "CFad18ZNGYzzrrts",
"hostname": "10.11.123.30",
"password": "RttomuAV9yvhwHm_",
"port": "36232",
"ports": {
"27017/tcp": "36232",
"28017/tcp": "49255"
},
"uri": "mongodb://xppt7gdk1G9Y1pd3:RttomuAV9yvhwHm_@10.11.123.30:36232/CFad18ZNGYzzrrts",
"username": "xppt7gdk1G9Y1pd3"
},
"label": "mongodb",
"name": "mod",
"plan": "v3.0-container",
"provider": null,
"syslog_drain_url": null,
"tags": [
"mongodb",
"document"
],
"volume_mounts": []
},
当我通过推送连接到这个数据库时,我做了以下有效的操作
if (process.env.VCAP_SERVICES) {
var val = JSON.parse(process.env.VCAP_SERVICES)
mongoose.connect(val['mongodb'][0].credentials.uri, function (err) {
... 现在我将上面的配置复制到我的项目中(在 config/config.json 下) 并尝试通过它从我的本地应用程序连接,但它不起作用
var config = require('../config/config.json');
mongoose.connect(val['mongodb'][0].credentials.uri, function (err
错误是
failed to connect to server [10.11.123.30:36232] on first connect
at Pool.<anonymous> (/Users/f53356/WebstormProjects/dlStackDemo/node_modules/mongodb-core/lib/topologies/server.js:325:35)
at emitOne (events.js:96:13)
at Pool.emit (events.js:188:7)
知道如何克服这个问题, 当我的应用程序在 CF 上运行时我使用 URI,但现在我无法从我的本地电脑运行它并连接到 CF 中的服务实例,知道吗?
最佳答案
瑞安
mongodb
服务是 Bluemix 中可用的实验性服务,您只能通过 Cloud Foundry 应用程序访问它,因此您无法从本地计算机连接它。
如果您想在 Bluemix 中使用 MongoDB 数据库并让您的应用程序连接到它,您可以使用 Compose for MongoDB
服务:
https://console.ng.bluemix.net/catalog/services/compose-for-mongodb
创建此服务的实例后,它还会创建默认凭据。您可以从绑定(bind)到服务的 Bluemix 应用程序通过 VCAP_SERVICES 访问凭据,也可以通过 cf 命令行获取凭据:
$ cf service-key your-instance-name Credentials-1
Credentials-1
是创建 Compose for MongoDB 实例时凭证的默认名称。
关于mongodb - 如何在 CF 中测试服务实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41658749/