Котлин и Джаваскрипт

Котлин и Джаваскрипт

1. обзор

Kotlin - это язык программирования следующего поколения, разработанный JetBrains. Он приобретает популярность в сообществе разработчиков Android как замена Java.

Еще одна интересная особенность Kotlin - поддержка серверного и клиентского JavaScript. В этой статье мы собираемся обсудить, как писать серверные приложения JavaScript с использованием Kotlin.

Kotlin может быть переведен (исходный код написан на одном языке и преобразован на другой язык) в JavaScript. It gives users the option of targeting the JVM and JavaScript using the same language.с

В следующих разделах мы собираемся разработать приложение node.js с использованием Kotlin.

2. node.js

Node.js is a lean, fast, cross-platform runtime environment for JavaScript. Это полезно как для серверных, так и для настольных приложений.

Начнем с настройки среды и проекта node.js.

2.1. Установка node.js

Node.js can be downloaded from the Node website. Он поставляется с менеджером пакетов npm. После установки нам нужно настроить проект.

В пустом каталоге запустим:

npm init

Он задаст несколько вопросов об имени пакета, описании версии и точке входа. Предоставьте «kotlinNode» какname, «Пример узла Kotlin» какdescription и «crypto.js» какentrypoint. Для остальных значений оставим значения по умолчанию.

Этот процесс сгенерирует s-файлpackage.json .

После этого нам нужно установить несколько пакетов зависимостей:

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

Это установит модули, требуемые нашим примером приложения, в каталог текущего проекта.

3.  Создание приложения node.js с использованием Kotlin

В этом разделе мы собираемся создать сервер криптографического API, используя node.js в Kotlin. API будет получать некоторые самостоятельно генерируемые курсы криптовалюты.

3.1. Создание проекта Kotlin

Теперь давайте настроим проект Kotlin. Здесь мы будем использоватьGradle, это рекомендуемый и простой в использовании подход. Gradle можно установить, следуя инструкциям наGradle site.

Начнем с создания файлаbuild.gradle в том же каталоге:

buildscript {
    ext.kotlin_version = '1.2.41'
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

group 'com.example'
version '1.0-SNAPSHOT'
apply plugin: 'kotlin2js'

repositories {
    mavenCentral()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version"
    testCompile "org.jetbrains.kotlin:kotlin-test-js:$kotlin_version"
}

compileKotlin2Js.kotlinOptions {
    moduleKind = "commonjs"
    outputFile = "node/crypto.js"
}

В файлеbuild.gradle необходимо выделить два важных момента. First, we apply the kotlin2js plugin to do the транспиляция.

Затем вKotlinOptions мы устанавливаемmoduleKind to «commonjs” to работать с node.js. С помощью элемента управленияoutputFile optionwe, где будет сгенерирован транспилированный код.

3.2. Создание API

Давайте начнем реализацию нашего приложения с создания исходной папкиsrc/main/kotlin.

В этой папке создаем файлCryptoRate.kt.

В этом файле нам сначала нужно импортировать функциюrequire, а затем создать методmain:

external fun require(module: String): dynamic

fun main(args: Array) {

}

Далее мы импортируем необходимые модули и создаем сервер, который прослушивает порт 3000:

val express = require("express")

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

Наконец, мы добавляем конечную точку API «/ crypto». Он сгенерирует и вернет данные:

app.get("/crypto", { _, res ->
    res.send(generateCrypoRates())
})

data class CryptoCurrency(var name: String, var price: Float)

fun generateCryptoRates(): Array {
    return arrayOf(
      CryptoCurrency("Bitcoin", 90000F),
      CryptoCurrency("ETH",1000F),
      CryptoCurrency("TRX",10F)
    );
}

Мы использовали экспресс-модуль node.js для создания конечной точки API. 

4. Запустите приложение

Запуск приложения будет состоять из двух частей. Нам нужно преобразовать код Kotlin в JavaScript, прежде чем мы сможем запустить наше приложение с Node.

Чтобы создать код JavaScript, мы используем задачу сборки Gradle:

gradlew build

Это сгенерирует исходный код в каталогеnode.

Затем мы выполняем сгенерированный файл кодаcrypto.js с помощью Node.js:

node node/crypto.js

Это запустит сервер, работающий на порту 3000. В браузере позвольте получить доступ к API, вызвавhttp://localhost:3000/crypto, чтобы получить следующий результат JSON:

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

В качестве альтернативы мы можем использовать такие инструменты, какPostman илиSoapUI to, использующие API.

5. Заключение

В этой статье мы узнали, как писать приложения node.js с помощью Kotlin.

Мы создали небольшой сервис за несколько минут, не используя шаблонный код.

Как всегда, образцы кода можно найтиover on GitHub.