Ok itu pencarian yang panjang dan akhirnya saya bisa menyelesaikannya. Kesalahan pertama saya adalah, rute tersebut tidak cocok untuk membuat koneksi ke database karena hanya menggunakan protokol http.
Sekarang ada 2 usecase tersisa untuk saya
- Anda sedang mengerjakan mesin lokal dan ingin menguji kode yang nanti Anda unggah ke OpenShift
- Anda menerapkan kode tersebut ke OpenShift (harus berada dalam proyek yang sama tetapi merupakan aplikasi yang berbeda dari database)
1. Mesin Lokal
Karena rute tidak berfungsi, penerusan port digunakan. Saya telah membacanya sebelumnya tetapi tidak begitu mengerti apa artinya (saya pikir layanan itu sendiri sudah meneruskan port).
Saat Anda berada di mesin lokal Anda, Anda akan melakukan hal berikut dengan oc
oc port-forward <pod-name> <local-port>:<remote-port>
Anda akan mendapatkan info bahwa port tersebut diteruskan. Sekarang masalahnya, di aplikasi Anda, Anda sekarang akan terhubung ke localhost (bahkan di komputer lokal Anda)
2. Aplikasi berjalan di OpenShift
Setelah Anda mengunggah kode Anda ke OpenShift (Dalam kasus saya, cukup Tambahkan ke proyek --> Node.js --> Tambahkan repo Anda), localhost tidak akan berfungsi lagi. Perlu beberapa saat bagi saya untuk memahami bahwa sebagai selama Anda berada dalam proyek yang sama, Anda akan memiliki banyak informasi dalam variabel lingkungan Anda. Jadi, cukup periksa nama layanan database Anda (dalam kasus saya mongodb) dan Anda akan menemukan host dan port untuk digunakan
Ringkasan
Berikut adalah contoh kode kecil yang berfungsi sekarang, juga pada mesin lokal seperti pada OpenShift. Saya sudah menyiapkan persisten dan MongoDB di OpenShift yang disebut mongodb.
Kode tidak banyak membantu, tetapi akan membuat koneksi dan memberi tahu Anda bahwa itu berhasil, jadi Anda tahu itu berfungsi.
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);
});