División de routes en múltiples files

Soy nuevo en Kotlin y Ktor el siguiente está funcionando bien conmigo como inicio, ahora necesito agregar más Routes ¿Cómo puedo dividir las routes en múltiples files?

 package blog import org.jetbrains.ktor.netty.* import org.jetbrains.ktor.routing.* import org.jetbrains.ktor.application.* import org.jetbrains.ktor.features.* import org.jetbrains.ktor.host.* import org.jetbrains.ktor.http.* import org.jetbrains.ktor.response.* import org.jetbrains.ktor.request.* // for recieve import org.jetbrains.ktor.util.* // for ValuesMap import org.apache.commons.mail.* fun Application.module() { install(DefaultHeaders) install(CallLogging) install(Routing) { get("/") { call.respondText(""" My Example Blog2 <form action="/contact-us" method="post"> <input name="subject" placeholder="Subject"> <br> <textarea name="message" placeholder="Your message ..."></textarea> <br> <button>Submit</button> </form> """, ContentType.Text.Html) } post("/contact-us") { val post = call.receive<ValuesMap>() SimpleEmail().apply { setHostName("smtp.gmail.com") setSmtpPort(465) setAuthenticator(DefaultAuthenticator("my_alias@gmail.com", "my_gmil_passoword")) setSSLOnConnect(true) setFrom("my_alias@gmail.com") setSubject(post["subject"]) setMsg(post["message"]) addTo("my_alias@gmail.com") }.send() // will throw email-exception if something is wrong call.respondRedirect("/contact-us/success") } get("/contact-us/success") { call.respondText("Your message was sent", ContentType.Text.Html) } } } fun main(args: Array<String>) { embeddedServer(Netty, 8080, watchPaths = listOf("BlogAppKt"), module = Application::module).start() } 

Finalmente lo descubrí:

Instale el routing para el nombre de las funciones que necesita, como:

 install(Routing) { contact() } 

Cree una function como fun Route.contact(){ ..} para manejar los requisitos, por lo que para mi ejemplo, he creado el siguiente:

 fun Route.contact(){ get("/") { call.respondText(""" My Example Blog 12 <form action="/contact-us" method="post"> <input name="subject" placeholder="Subject"> <br> <textarea name="message" placeholder="Your message ..."></textarea> <br> <button>Submit</button> </form> """, ContentType.Text.Html) } post("/contact-us") { val post = call.receive<ValuesMap>() // val userId = registration["userId"] SimpleEmail().apply { setHostName("smtp.gmail.com") setSmtpPort(465) setAuthenticator(DefaultAuthenticator("my_alias@gmail.com", "my_gmil_passoword")) setSSLOnConnect(true) setFrom("my_alias@gmail.com") setSubject(post["subject"]) setMsg(post["message"]) addTo("my_alias@gmail.com") }.send() // will throw email-exception if something is wrong call.respondRedirect("/contact-us/success") } get"/contact-us/success") { call.respondText("Your message was sent", ContentType.Text.Html) } } 
  • No existe la relación Heroku postgres "information_schema.session_state"