1. 概要

Kotlinは、JetBrainsによって開発された次世代プログラミング言語です。 Javaの代わりとしてAndroid開発コミュニティで人気が高まっています。

Kotlinのもう1つのエキサイティングな機能は、サーバー側とクライアント側のJavaScriptのサポートです。 この記事では、Kotlinを使用してサーバーサイドJavaScriptアプリケーションを作成する方法について説明します。

KotlinはJavaScriptに変換できます(ある言語で記述され、別の言語に変換されたソースコード)。 同じ言語を使用してJVMとJavaScriptをターゲットにするオプションをユーザーに提供します。

次のセクションでは、Kotlinを使用してnode.jsアプリケーションを開発します。

2. node.js

Node.jsは、JavaScript用の無駄のない高速なクロスプラットフォームのランタイム環境です。 サーバーアプリケーションとデスクトップアプリケーションの両方に役立ちます。

node.js環境とプロジェクトを設定することから始めましょう。

2.1. node.jsのインストール

Node.jsは、NodeのWebサイトからダウンロードできます。 npmパッケージマネージャーが付属しています。 インストール後、プロジェクトを設定する必要があります。

空のディレクトリで、次を実行してみましょう。

npm init

パッケージ名、バージョンの説明、およびエントリポイントについていくつか質問します。 name として「kotlin-node」、 description として「KotlinNodeExample」、entrypointとして「crypto.js」を指定します。 残りの値については、デフォルトのままにします。

このプロセスにより、パッケージが生成されます。 jsonファイル。

この後、いくつかの依存関係パッケージをインストールする必要があります。

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

これにより、サンプルアプリケーションに必要なモジュールが現在のプロジェクトディレクトリにインストールされます。

3. Kotlinを使用したnode.jsアプリケーションの作成

このセクションでは、Kotlinでnode.jsを使用して暗号化APIサーバーを作成します 。 APIはいくつかの自己生成された暗号通貨レートをフェッチします。

3.1. Kotlinプロジェクトの設定

それでは、Kotlinプロジェクトを設定しましょう。 ここではGradleを使用します。これは、推奨される使いやすいアプローチです。 Gradleは、Gradleサイトに記載されている手順に従ってインストールできます。

この後、 inittaskを使用して初期Gradleプロジェクトを生成します。 「基本」タイプのプロジェクト、実装言語としてKotlin、ビルドスクリプトDSLとしてGroovyを選択し、プロジェクト名として「kotlin-node」、パッケージ名として「balding」を入力します。

これにより、build.Gradleファイルが作成されます。 このファイルの内容を次のように置き換えます。

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

group 'com.baeldung'
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ファイルで強調する2つの重要なポイントがあります。 まず、kotlin2jsプラグインを適用して変換を実行します。

次に、 KotlinOptions で、moduleKindを「commonjs」に設定してnode.jsで動作します。 outputFile option を使用して、トランスパイルされたコードが生成される場所を制御します。

注: build.gradleファイルのext.kotlin_versionがpackage.jsonファイルのext.kotlin_versionと一致していることを確認してください。

3.2. APIの作成

ソースフォルダsrc/ main / kotlin、、パッケージ構造 com / baeldung/kotlinjsを作成してアプリケーションの実装を始めましょう。

このパッケージでは、ファイル CryptoRate.ktを作成します。

このファイルでは、最初に require 関数をインポートしてから、メインメソッドを作成する必要があります。

external fun require(module: String): dynamic

fun main(args: Array<String>) {
    
}

次に、必要なモジュールをインポートし、ポート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<CryptoCurrency> {
    return arrayOf<CryptoCurrency>(
      CryptoCurrency("Bitcoin", 90000F),
      CryptoCurrency("ETH",1000F),
      CryptoCurrency("TRX",10F)
    );
}

node.jsエクスプレスモジュールを使用してAPIエンドポイントを作成しました。

4. アプリケーションを実行する

アプリケーションの実行は2つの部分からなるプロセスになります。 Nodeを使用してアプリケーションを起動する前に、KotlinコードをJavaScriptにトランスパイルする必要があります。

JavaScriptコードを作成するには、Gradleビルドタスクを使用します。

./gradlew build

これにより、ノードディレクトリにソースコードが生成されます。

次に、Node.jsを使用して生成されたコードファイルcrypto.jsを実行します。

node node/crypto.js

これにより、ポート3000で実行されているサーバーが起動します 。 ブラウザで、を呼び出してAPIにアクセスしましょう http:// localhost:3000 / crypto このJSON結果を取得するには:

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

または、PostmanSoapUIなどのツールを使用してAPIを使用することもできます。

5. 結論

この記事では、Kotlinを使用してnode.jsアプリケーションを作成する方法を学びました。

ボイラープレートコードを使用せずに、数分で小さなサービスを構築しました。

いつものように、コードサンプルはGitHubにあります。