4

Cloud9の接続データベースMongoDBに問題がありますこの問題の解決にご協力ください!

var MongoClient = require("mongodb").MongoClient;
var port = process.env.PORT;
var ip   = process.env.IP;
MongoClient.connect("mongodb://"+ip+":"+port+"/test",function(error,db){
        if(!error){
         console.log("We are connected");   
        }
        else{
         console.dir(error); //failed to connect to [127.4.68.129:8080]               
        }
});

出力:

Running Node Process
Your code is running at 'http://demo-project.alfared1991.c9.io'.
Important: use 'process.env.PORT' as the port and 'process.env.IP' as the host in your scripts!
[Error: failed to connect to [127.4.68.129:8080]]
4

3 に答える 3

7

https://docs.c9.io/setting_up_mongodb.htmlこのリンクをたどると、ワークスペースの下でmongodbデーモンをセットアップして実行します。

そして、の出力を見ると、次の出力./mongodがわかります。

2015-08-22T12:46:47.120+0000 [initandlisten] MongoDB starting : pid=7699 port=27017 dbpath=data 64-bit host=velvetdeth-express-example-1804858

ホストとポートの値をmongodb構成にコピーし、データベースのURLを設定するだけです。この場合は次のようになります。

mongodb://velvetdeth-express-example-1804858:27017
于 2015-08-22T12:51:22.693 に答える
2

process.env.PORTおよびprocess.env.IPは、データベースではなく、アプリケーションのポートとIPアドレスです。MongoDBプロバイダーからMongo接続文字列をプルする必要があります。

以下は、2つの環境変数を使用するように変更されたNode.jsホームページのhelloworldの例です。

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(process.env.PORT || 1337, process.env.IP || '127.0.0.1');
于 2013-01-21T09:41:25.173 に答える
1

この問題に遭遇した他の人のために、解決策はここにあります:https ://docs.c9.io/setting_up_mongodb.html

MongoDBはCloud9ワークスペースにプレインストールされています。これを実行します:

$ mkdir data
$ echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest "$@"' > mongod
$ chmod a+x mongod

Mongodbプロセスを開始するには、次を実行します。

$ ./mongod

次に、node.jsアプリスクリプトを「実行」すると、レースに出かけます。

パラメータの意味は次のとおりです。

--dbpath = data(デフォルトではアクセスできない/ var / dbになっているため)

--mongodbは通常2GBのジャーナルファイル(Cloud9のディスク容量の割り当てを超える)を事前に割り当てるため、nojournal

--bind_ip = $ IP(0.0.0.0にバインドできないため)

--restはデフォルトポート28017で実行されます

于 2014-07-25T16:18:37.813 に答える