-1

以下はコンソールセッションです...

C:\Users\xxx>vmc tunnel myMongoDB
Getting tunnel connection info: OK

Service connection info:
  username : uuuu
  password : pppp
  name     : db
  url      : mongodb://uuuu:pppp@172.30.xx.xx:25200/db

Starting tunnel to myMongoDB on port 10000.
1: none
2: mongo
3: mongodump
4: mongorestore
Which client would you like to start?: 2
Launching 'mongo --host localhost --port 10000 -u uuuu -p pppp db'

MongoDB shell version: 2.0.6
connecting to: localhost:10000/db
> db.serverStatus()
{ "errmsg" : "need to login", "ok" : 0 }
>

エラー " { "errmsg" : "need to login", "ok" : 0 } ".

私のマシンのmicro CFで同じことを実行すると、正常に動作し、期待される出力が得られます。

PS私はnode.jsで書かれたアプリケーションの現在の接続を知るためにこれを試みています。DB への接続に関するいくつかの問題をデバッグしようとしています。私が使用できる他の代替手段がある場合は、それも提案してください。

4

1 に答える 1

1

これはうまくいくはずです!トンネルが接続されていない理由がわからない場合は、MongoDB の別のインスタンスを試して、同じエラーが発生するかどうかを確認することをお勧めします。

node.js アプリでバインドされたサービスを検査しようとしている場合は、VCAP_SERVICES 環境変数でそれらを検査できるはずです。例えば;

var http = require('http');
var util = require('util');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.write(util.inspect(process.env.VCAP_SERVICES));
  res.write("\n\n************\n\n");
  res.end(util.inspect(req.headers));

}).listen(3000);

このコードは現在、例としてhttp://node-headers.cloudfoundry.com/で実行されています。ただし、node.js アプリケーションの mongodb 接続は、バインドされたサービスに自動的に構成する必要があります。これがうまくいかない場合は、お知らせください。

于 2012-09-10T15:59:37.307 に答える