sql >> Databáze >  >> NoSQL >> MongoDB

OpenShift Přístup k modulu Mongodb z jiného modulu

Ok, bylo to dlouhé hledání a nakonec se mi to podařilo vyřešit. Moje první chyba byla, že trasy nejsou vhodné pro připojení k databázi, protože používají pouze http-protokol.

Nyní mi zbyly 2 případy použití

  1. Pracujete na svém místním počítači a chcete otestovat kód, který později nahrajete do OpenShift
  2. Tento kód nasadíte do OpenShift (musí být ve stejném projektu, ale je to jiná aplikace než databáze)

1. Místní stroj

Protože trasa nefunguje, používá se přesměrování portů. Už jsem to četl, ale moc jsem nerozuměl, co to znamená (myslel jsem si, že samotná služba už předává porty).

Když jste na místním počítači, provedete následující pomocí oc

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

Dostanete informaci, že port je přesměrován. Nyní jde o to, že ve vaší aplikaci se nyní připojíte k localhost (i na vašem místním počítači)

2. Aplikace běžící na OpenShift

Poté, co nahrajete svůj kód do OpenShift (v mém případě stačí Přidat do projektu --> Node.js --> Přidat repo), localhost již nebude fungovat. Chvíli mi trvalo, než jsem pochopil, že jako dokud jste ve stejném projektu, budete mít spoustu informací ve svých proměnných prostředí. Takže stačí zkontrolovat název služby vaší databáze (v mém případě mongodb) a najdete hostitele a port, který chcete použít

Shrnutí

Zde je malý příklad kódu, který funguje nyní, a to jak na místním počítači, tak na OpenShift. Již jsem nastavil persistand MongoDB na OpenShift s názvem mongodb.

Kód toho moc nedělá, ale naváže spojení a řekne vám, že ano, takže víte, že to funguje.

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. Řazení v MongoDB pomocí elemMatch

  2. Jak může být MongoDB dataSize větší než storageSize?

  3. MongoDB:agregační rámec:$match mezi poli

  4. Pokus o vyřešení závislostí:Změna standardní knihovny .NET na NET Core - Microsoft.Extensions.Primitives