Исключение, открывающее сокет kmongo и ktor

#kotlin #ktor

#kotlin #ktor

Вопрос:

Недавно я начал изучать ktor, чтобы я мог создать свой собственный API, я настроил свой сервер, и все в порядке, но теперь я хочу применить эту логику сохранения данных в БД, а затем просто загрузить данные из БД и отправить их на мой сервер

  • Вот как я это делаю сейчас
 private fun insertDetails(user : ArrayList<userCredentials>){
     val client = KMongo.createClient()
     var database = client.getDatabase("test")
     var collection = database.getCollection<ArrayList<userCredentials>>()
     CoroutineScope(Dispatchers.IO).launch {
         collection.insertOne(user)
     }
 }
  

* Вот как я получаю данные из базы данных kmongo

 private suspend fun getData() : List<ArrayList<userCredentials>> {
    return KMongo.createClient().getDatabase("test")
        .getCollection<ArrayList<userCredentials>>()
        .find().toList()
}
  
  • Это исключение
 com.mongodb.MongoSocketOpenException: Exception opening socket

  

я хотел бы спросить, правильно ли я это делаю

Вот моя схема для этого: сохранить данные в БД -> получить данные из БД -> отправить их на мой сервер m спасибо

Ответ №1:

Убедитесь, что демон mongo запущен и целевой порт открыт в брандмауэре.

Ответ №2:

Действительно, вам нужно запустить демон mongo: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/#using-mongodb-from-10gen-builds

Что я должен был сделать:

 brew tap mongodb/brew
brew install mongodb-community@5.0
brew services start mongodb-community@5.0
  

И тогда это сработало.