19

如果我理解正确,随着Kotlin 1.1 的发布,我们可以将 JavaScript 设置为编译目标,以便完全编译为 Kotlin 项目的 JavaScript。仅使用 Kotlin 代码编写整个 Node.js 应用程序(例如快速网络服务器)是否可能(或可行)?

正如这个问题所暗示的,我们可以将 Node 模块导入 Kotlin 类:

external fun require(module: String): dynamic

val express = require('express')

...似乎我可以使用以下方法创建应用程序:

val app = express()

这是Kotlin设置快速应用程序的方式吗?或者我应该按照文档中的描述声明一个类:

@JsModule("express")
external class Express { ... }

为 Node.js 应用程序开发设置 Kotlin 项目的规范方法是什么?Kotlin 的 JavaScript 互操作性是否足够强大,可以继续沿着这条路走下去,还是会比它的价值更麻烦?

4

2 回答 2

3

从技术上讲,是的,只要 Kotlin 声称:

您可以使用 Kotlin 与服务器端 JavaScript 进行交互,例如 node.js

是正确的,并且 Kotlin -> JS 的转译足够可靠,能够预测 JS 的输出,那么您可以在 Kotlin 中编写 Node 应用程序,就像您可以在 TypeScript 中编写它们一样。

我个人怀疑,你会发现它很困难、有问题,而且缺乏支持,但它可能是一个很好的学术练习……也许吧。

于 2017-11-20T13:27:09.547 回答
1

是的,有可能https://kotlinlang.org/docs/reference/js-project-setup.html

但是,NIO 是使用 NodeJS 而不是任何语言来构建后端解决方案的最大原因。现在,有了响应式一级支持,您可以拥有像 Kotlin + Spring Reactive + Coroutines + R2DBC 这样的堆栈,并构建一个简单的微服务或任何完整的企业解决方案。

于 2020-09-14T20:19:08.873 回答