ノードアプリケーションをホストするためにappfogサービスを使い始めています。アプリケーションでmongodbを使用しようとすると問題が発生します。ここでのチュートリアル:https://docs.appfog.com/services/mongodb#walkthroughは、次のようにmongodbを接続するように記述されています。
require('mongodb').connect(mongourl, ...
mogourlは、generate_mongo_url
関数によって生成されたURLです。問題は、私が新しいapiを使用していて(私は思う)、URLをopenメソッドに渡すことができないことです。これが私がmongodbを使用している方法です:
var mongoClient = new MongoClient(new Server('localhost', 27017));
mongoClient.open(function(err, mongoClient) { ...
生成されたmongourlはどこでどのように使用できますか?generate_mongo_url関数で使用されるクレデンシャルとmongo変数を渡すにはどうすればよいですか?
更新
@mjhmの提案によると、これは私のオープン関数です。
var mongoService = null;
if(process.env.VCAP_SERVICES){
var env = JSON.parse(process.env.VCAP_SERVICES);
mongoService = env["mongodb-1.8"][0]["credentials"];
} else {
mongoService = {
"hostname": "localhost",
"port": 27017,
"isLocal": true,
"username": "",
"password": "",
"name": ""
};
}
this.mongoClient.open(function(err, mongoClient) {
if (!err) {
console.log("Open DB Success");
var db = mongoClient.db(DB_NAME);
if (!mongoService.isLocal) {
db.authenticate(mongoService.username,
mongoService.password, function (err, result) {
if (!err) {
console.log("Authenticate DB Success");
doAction();
} else {
console.log("Authenticate DB Error: " + err);
}
});
} else {
doAction();
}
} else {
console.log("Open DB Error: " + err);
}
});
このコードをappfogで実行しているとき、私は多くの時間(20秒以上)待っていると、次のようになります。
$ curl myappname.eu01.aws.af.cm/list
curl: (52) Empty reply from server
何が悪いのか分かりますか?