Kotlin和Javascript

Kotlin and Javascript

1.概述

Kotlin是JetBrains开发的下一代编程语言。它作为Java的替代品而在Androiddevelopment社区中受到欢迎。

Kotlin的另一个令人兴奋的功能是对服务器端和客户端JavaScript的支持。在本文中,我们将讨论如何使用Kotlin编写服务器端JavaScript应用程序。

可以将Kotlin编译(以一种语言编写的源代码,然后转换为另一种语言的源代码)到JavaScript。它为用户提供了使用相同语言定位JVM和JavaScript的选项。

在接下来的部分中,我们将使用Kotlin开发一个node.js应用程序。

2. node.js

Node.js是JavaScript的精益,快速,跨平台运行时环境。对于服务器和桌面应用程序都很有用。

让我们从设置一个node.js环境和项目开始。

2.1。安装node.js

可以从Node网站下载Node.js。它带有thenpmpackage管理器。安装后,我们需要设置项目。

在空目录中,运行:

1
npm init

它将询问有关软件包名称,版本说明和入口点的一些问题。提供" kotlinNode"作为名称,提供" Kotlin节点示例"作为描述,并提供" crypto.js"作为入口点。对于其余的值,我们将保留默认值。

此过程将生成一个package.json文件。

之后,我们需要安装一些依赖包:

1
2
3
npm install
npm install kotlin --save
npm install express --save

这会将示例应用程序所需的模块安装在当前项目目录中。

3.使用Kotlin创建一个node.js应用程序

在本节中,我们将使用Kotlin中的node.js创建acryptoAPI服务器,该API将获取一些自行生成的加密货币汇率。

3.1。设置Kotlin项目

现在,让我们设置Kotlin项目。我们将在这里使用Gradle,这是推荐且易于使用的方法。可以按照Gradle网站上提供的说明安装Gradle。

让我们从在同一目录中创建build.gradle文件开始:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
buildscript {
    ext.kotlin_version = '1.2.41'
    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文件中有两点要突出显示。首先,我们应用kotlin2js插件进行翻译。

然后,在inKotlinOptions中,我们将moduleKindto设置为" commonjs"以与node.js一起使用。使用outputFile选项,我们控制将在何处生成转码的代码。

3.2。创建一个API

让我们开始通过创建源文件夹rc / main / kotlin来实现我们的应用程序。

在此文件夹中,我们创建文件CryptoRate.kt。

在此文件中,我们首先需要导入require函数,然后创建main方法:

1
2
3
4
5
external fun require(module: String): dynamic

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

接下来,我们导入所需的模块并创建一个侦听端口3000的服务器:

1
2
3
4
5
6
val express = require("express")

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

最后,我们添加API端点" / crypto"。它将生成并返回数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
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 express模块??来创建API端点。

4.运行应用程序

运行应用程序将分为两个部分。我们需要先将Kotlin代码转换为JavaScript,然后才能使用Node启动应用程序。

要创建JavaScript代码,我们使用Gradle构建任务:

1
gradlew build

这将在thenode目录中生成源代码。

接下来,我们使用Node.js执行生成的代码文件crypto.js:

1
node node/crypto.js

这将启动运行在端口3000上的服务器。在浏览器中,通过调用http:// localhost:3000 / cryptoto来访问API,以获取以下JSON结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[
  {
   "name":"Bitcoin",
   "price": 90000
  },
  {
   "name":"ETH",
   "price": 1000
  },
  {
   "name":"TRX",
   "price": 10
  }
]

另外,我们可以使用Postman或SoapUI之类的工具来使用该API。

5.结论

在本文中,我们学习了如何使用Kotlin编写node.js应用程序。

我们在几分钟内就建立了一个小型服务,而没有使用任何样板代码。

与往常一样,可以在GitHub上找到代码示例。