Kotlin en Javascript

1. Overzicht

Kotlin is een programmeertaal van de volgende generatie die is ontwikkeld door JetBrains. Het wint aan populariteit bij de Android-ontwikkelgemeenschap als vervanging voor Java.

Een ander opwindend kenmerk van Kotlin is de ondersteuning van server- en client-side JavaScript. In dit artikel gaan we bespreken hoe u JavaScript-applicaties aan de serverzijde kunt schrijven met Kotlin.

Kotlin kan worden omgezet (broncode geschreven in een taal en omgezet in een andere taal) naar JavaScript. Het geeft gebruikers de mogelijkheid om zich in dezelfde taal te richten op JVM en JavaScript.

In de komende secties gaan we een node.js-applicatie ontwikkelen met Kotlin.

2. node.js

Node.js is een slanke, snelle, platformonafhankelijke runtime-omgeving voor JavaScript. Het is handig voor zowel server- als desktoptoepassingen.

Laten we beginnen met het opzetten van een node.js-omgeving en -project.

2.1. Node.js installeren

Node.js kan worden gedownload vanaf de Node-website. Het wordt geleverd met de npm-pakketbeheerder. Na installatie moeten we het project opzetten.

Laten we in de lege map uitvoeren:

npm init

Het zal een paar vragen stellen over pakketnaam, versiebeschrijving en een toegangspunt. Geef "kotlin-node" op als naam, "Kotlin Node-voorbeeld" als Omschrijving en "crypto.js" als ingangspunt. Voor de rest van de waarden behouden we de standaardwaarde.

Dit proces genereert een pakket.json het dossier.

Hierna moeten we een paar afhankelijkheidspakketten installeren:

npm install npm install kotlin --save npm install express --save

Hiermee worden de modules geïnstalleerd die nodig zijn voor onze voorbeeldtoepassing in de huidige projectdirectory.

3. Een node.js Toepassing met behulp van Kotlin

In deze sectie gaan we een crypto API-server maken met node.js in Kotlin. De API haalt enkele zelf gegenereerde cryptovalutakoersen op.

3.1. Het Kotlin-project opzetten

Laten we nu het Kotlin-project opzetten. We zullen gebruiken Grijpen hier wat de aanbevolen en gemakkelijk te gebruiken aanpak is. Gradle kan worden geïnstalleerd door de instructies op het Grijpen site.

Genereer hierna een initieel Gradle-project met behulp van de init-taak. Selecteer het "basistype" project, Kotlin voor de implementatietaal, Groovy als het build-script DSL, voer vervolgens "kotlin-node" in als de projectnaam en "baeldung" als de pakketnaam.

Dit zal een build.gradle het dossier. Vervang de inhoud van dit bestand door:

buildscript {ext.kotlin_version = '1.4.10' repositories {mavenCentral ()} afhankelijkheden {classpath "org.jetbrains.kotlin: kotlin-gradle-plugin: $ kotlin_version"}} groep 'com.baeldung' versie '1.0-SNAPSHOT' plug-in toepassen: 'kotlin2js' repositories {mavenCentral ()} afhankelijkheden {compileren "org.jetbrains.kotlin: kotlin-stdlib-js: $ kotlin_version" testCompile "org.jetbrains.kotlin: kotlin-test-js: $ kotlin_version "2} compileren .kotlinOptions {moduleKind = "commonjs" outputFile = "node / crypto.js"}

Er zijn twee belangrijke punten die in het build.gradle het dossier. Ten eerste passen we de kotlin2js plug-in om het transpilatie.

Dan in KotlinOptions, we zetten moduleKind naar "commonjs " om te werken met node.js. Met de outputFile keuze, wij bepalen waar de transpile code zal worden gegenereerd.

Opmerking: Zorg ervoor dat het ext.kotlin_version in de build.gradle bestand komt overeen met het bestand in het package.json het dossier.

3.2. Een API maken

Laten we beginnen met het implementeren van onze applicatie door de bronmap te maken src / main / kotlin, dan de pakketstructuur com / baeldung / kotlinjs.

In dit pakket maken we het bestand aan CryptoRate.kt.

In dit bestand moeten we eerst het vereisen functie en maak vervolgens het hoofd methode:

extern plezier vereist (module: String): dynamic fun main (args: Array) {}

Vervolgens importeren we de benodigde modules en maken we een server die luistert op poort 3000:

val express = vereisen ("express") val app = express () app.listen (3000, {println ("Listening on port 3000")}) 

Ten slotte voegen we het API-eindpunt "/ crypto" toe. Het genereert en retourneert de gegevens:

app.get ("/ crypto", {_, res -> res.send (GenereerCrypoRates ())}) dataklasse CryptoCurrency (var name: String, var price: Float) plezier genererenCryptoRates (): Array {return arrayOf (CryptoCurrency ("Bitcoin", 90000F), CryptoCurrency ("ETH", 1000F), CryptoCurrency ("TRX", 10F)); }

We hebben de node.js express-module gebruikt om het API-eindpunt te maken.

4. Start de applicatie

Het uitvoeren van de applicatie zal een tweedelig proces zijn. We moeten de Kotlin-code in JavaScript transpileren voordat we onze applicatie met Node kunnen starten.

Om de JavaScript-code te maken, gebruiken we de Gradle-buildtaak:

./gradlew build 

Dit genereert de broncode in het knooppunt directory.

Vervolgens voeren we het gegenereerde codebestand uit crypto.js met behulp van Node.js:

knooppunt knooppunt / crypto.js 

Hierdoor wordt de server gestart die op poort 3000 draait. Laten we in de browser toegang krijgen tot de API door aan te roepen // localhost: 3000 / crypto om dit JSON-resultaat te krijgen:

[{"name": "Bitcoin", "price": 90000}, {"name": "ETH", "price": 1000}, {"name": "TRX", "price": 10}]

Als alternatief kunnen we tools gebruiken zoals Postbode of SoapUI om de API te consumeren.

5. Conclusie

In dit artikel hebben we geleerd hoe u node.js-toepassingen kunt schrijven met Kotlin.

We hebben in een paar minuten een kleine service gebouwd zonder enige standaardcode te gebruiken.

Zoals altijd zijn de codevoorbeelden te vinden op GitHub.