Хорошо, это был долгий поиск, и, наконец, я смог его решить.Моя первая ошибка заключалась в том, что маршруты не подходят для подключения к базе данных, поскольку они используют только http-протокол.
Теперь для меня осталось 2 варианта использования
- Вывы работаете на своем локальном компьютере и хотите проверить код, который вы позже загрузите в OpenShift
- Этот код развертывается в OpenShift (должен быть в том же проекте, но это приложение отличается от базы данных)
1.Локальный компьютер
Поскольку маршрут не работает, используется переадресация портов.Я читал это раньше, но не совсем понял, что это значит (я думал, что сама служба уже перенаправляет порты).
Когда вы находитесь на своей локальной машине, вы будете делать следующее с oc
oc port-forward <pod-name> <local-port>:<remote-port>
Вы получите информацию о том, что порт переадресован.Теперь дело в том, что в вашем приложении вы теперь подключитесь к localhost (даже на вашей локальной машине)
2.Приложение, работающее в OpenShift
После того, как вы загрузите свой код в OpenShift (в моем случае, просто Добавить в проект -> Node.js -> Добавить репозиторий), localhost работать не будетдольше.Мне потребовалось некоторое время, чтобы понять, что пока вы находитесь в одном проекте, у вас будет много информации в переменных среды.Так что просто проверьте имя службы вашей базы данных (в моем случае mongodb), и вы найдете хост и порт для использования
Сводка
Вот небольшой кодпример, который работает сейчас, как на локальной машине, так и на OpenShift.Я уже настроил постоянную MongoDB в OpenShift под названием mongodb.
Код не делает много, но он установит соединение и сообщит вам, что это было сделано, так что вы знаете, что оно работает.
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);
});