sql >> データベース >  >> NoSQL >> MongoDB

別のポッドからのOpenShiftAccessMongodb Pod

    長い検索でしたが、ようやく解決できました。私の最初の間違いは、ルートはhttpプロトコルのみを使用するため、データベースへの接続には適していないということでした。

    今、私には2つのユースケースが残っています

    1. ローカルマシンで作業していて、後でOpenShiftにアップロードするコードをテストしたい
    2. そのコードをOpenShiftにデプロイします(同じプロジェクトにある必要がありますが、データベースとは異なるアプリです)

    1。ローカルマシン

    ルートが機能しないため、ポートフォワーディングが使用されます。私は以前にそれを読んだことがありますが、それが何を意味するのか本当に理解していませんでした(サービス自体はすでにポートを放棄していると思いました)。

    ローカルマシンを使用している場合は、ocを使用して次のことを行います

    oc port-forward <pod-name> <local-port>:<remote-port>
    

    ポートが転送されたという情報が表示されます。これで、アプリでローカルホストに接続できるようになります(ローカルマシンでも)

    2。 OpenShiftで実行されているアプリ

    コードをOpenShiftにアップロードした後(私の場合は、プロジェクトに追加-> Node.js->リポジトリを追加)、ローカルホストは機能しなくなります。同じプロジェクトにいる限り、環境変数に多くの情報が含まれているので、データベースのサービスの名前(私の場合はmongodb)を確認するだけで、使用するホストとポートが見つかります

    >

    概要

    これは、OpenShiftと同様にローカルマシンでも機能する小さなコード例です。 OpenShiftにmongodbと呼ばれるpersistandMongoDBを設定しました。

    コードはあまり機能しませんが、接続を確立し、接続したことを通知するので、機能していることがわかります。

    var mongoose = require('mongoose');
    
    // Connect to Mongodb
    var username = process.env.MONGO_DB_USERNAME || 'someUserName';
    var password = process.env.MONGO_DB_PASSWORD || 'somePassword';
    
    var host = process.env.MONGODB_SERVICE_HOST || '127.0.0.1';
    var port = process.env.MONGODB_SERVICE_PORT || '27017';
    
    var database = process.env.MONGO_DB_DATABASE || 'sampledb';
    console.log('---DATABASE PARAMETERS---');
    console.log('Host: ' + host);
    console.log('Port: ' + port);
    console.log('Username: ' + username);
    console.log('Password: ' + password); 
    console.log('Database: ' + database);
    
    
    
    var connectionString = 'mongodb://' + username + ':' + password +'@' + host + ':' + port + '/' + database;
    console.log('---CONNECTING TO---');
    console.log(connectionString);
    mongoose.connect(connectionString);
    
    mongoose.connection.once('open', (data) => {
        console.log('Connection has been made');
        console.log(data);
    });
    



    1. TravisCIでRedisを実行する

    2. MongoDBに日付を保存するための最良の方法は何ですか?

    3. Catbox-redisが私のhapijsアプリケーションで切断されたエラーを表示しています

    4. Mongodb-データベースまたはコレクションレベルでレプリケーションを設定する