sql >> Database teknologi >  >> NoSQL >> MongoDB

OpenShift Få adgang til Mongodb Pod fra en anden Pod

Ok, det var en lang søgning, og endelig var jeg i stand til at løse det. Min første fejl var, at ruter ikke er egnede til at oprette forbindelse til en database, da de kun bruger http-protokollen.

Nu var der 2 usecases tilbage til mig

  1. Du arbejder på din lokale maskine og vil teste kode, som du senere uploader til OpenShift
  2. Du implementerer den kode til OpenShift (skal være i det samme projekt, men er en anden app end databasen)

1. Lokal maskine

Da ruten ikke virker, bruges port forwarding. Jeg har læst det før, men forstod ikke rigtig, hvad det betød (jeg troede, at tjenesten i sig selv allerede videresender porte).

Når du er på din lokale maskine, vil du gøre følgende med oc

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

Du får information om, at porten er videresendt. Nu er sagen, at i din app vil du nu oprette forbindelse til localhost (selv på din lokale maskine)

2. App, der kører på OpenShift

Når du har uploadet din kode til OpenShift (i mit tilfælde skal du bare tilføje til projekt --> Node.js --> Tilføj din repo), vil localhost ikke virke længere. Det, der tog et stykke tid for mig at forstå, er, at som så længe du er i det samme projekt vil du have en masse information i dine miljøvariabler. Så tjek bare navnet på tjenesten i din database (i mit tilfælde mongodb), og du vil finde værten og porten du skal bruge

Oversigt

Her er et lille kodeeksempel, der fungerer nu, såvel på den lokale maskine som på OpenShift. Jeg har allerede oprettet en persistand MongoDB på OpenShift kaldet mongodb.

Koden gør ikke meget, men den vil oprette en forbindelse og fortælle dig, at den gjorde det, så du ved, at den virker.

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. MongoDB NumberLong/$numberLong problem under konvertering tilbage til Java Object

  2. Hvordan opretter man en CUPS-tjeneste til mongoDB?

  3. Forskellen mellem StackExchange.Redis og ServiceStack.Redis

  4. Skal jeg være admin for at oprette en ny bruger i MongoDB?