Tag: node.js

是否有可能使用Kotlin构建完整的Node.js Web应用程序?

如果我理解正确,随着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建立快速应用程序的方式吗? 或者,我应该按照文档中的说明申报一个class级: @JsModule(“express”) external class Express { … } 为Node.js应用程序开发建立一个Kotlin项目的规范方法是什么? Kotlin的JavaScript互操作性足够强大,能够继续走下去吗,还是会比它的价值更麻烦呢?

如何在使用Kotlin多平台时在Firebase的Cloud Functions中包含简单的JavaScript文件作为节点依赖项?

我想包括一个JavaScript文件作为模块依赖。 它是由Kotlin多平台生成的,它被称为common-js.js 。 这是我的package.json一部分: “dependencies”: { “common-js”: “file:common-js” } 我把这个文件放到了node_modules/common-js.js ,它可以和node_modules/common-js.js firebase serve一起工作,没有任何问题。 但是,当我运行firebase deploy ,部署将失败: Build failed: exit status 254 npm ERR! addLocal Could not install /workspace/common-js 如何使用云function来实现这一点? 我尝试把它放在其他目录比node_modules但它甚至不能在本地工作。

使用“创建-kotlin-app”创建的应用使用“npm start”时出错

当试图启动一个由命令行工具’create-react-kotlin-app’用’npm start’创建的应用程序时,我不断收到以下错误: kotlin-js failed. do you have kotlin installed? { “code”:”ENOENT”, “errno”:”ENOENT”, “syscall”:”spawn C:\\Users\\Aidan\\Desktop\\my-react- app\\node_modules\\kotlin-compiler\\bin\\kotlinc-js”, “path”:”C:\\Users\\Aidan\\Desktop\\my-react-app\\node_modules\\kotlin- compiler\\bin\\kotlinc-js”, “spawnargs”: [ “-output”, “C:\\Users\\Aidan\\Desktop\\my-react- app\\node_modules\\.cache\\kotlin-webpack\\kotlinApp.js”, “-source-map”, “-nowarn”, “-module-kind”, “commonjs”, “-libraries”, “C:\\Users\\Aidan\\Desktop\\my-react- app\\node_modules\\@jetbrains\\kotlin- extensions\\build\\classes\\main\\kotlin-extensions.meta.js:C:\\Use rs\\Aidan\\Desktop\\my-react-app\\node_modules\\@jetbrains\\kotlin- react\\build\\classes\\main\\kotlin- react.meta.js:C:\\Users\\Aidan\\Desktop\\my-react- app\\node_modules\\@jetbrains\\kotlin-react-dom\\ build\\classes\\main\\kotlin-react- dom.meta.js:C:\\Users\\Aidan\\Desktop\\my-react- app\\node_modules\\@hypnosphi\\kotlinx-html-js\\target\\classes\\kotlinx- html-js.meta.js”, “C:\\Users\\Aidan\\Desktop\\my-react-app\\src” ] } 我曾尝试安装Kotlin编译器,npm在全局和本地安装kotlinc-js,并搜索节点模块以查看系统正在尝试访问的文件是否存在,并且没有任何更改。 任何帮助将不胜感激,如果这是一个容易解决的问题,我提前道歉。

使用“创建-kotlin-app”创建的应用使用“npm start”时出错

当试图启动一个由命令行工具'create-react-kotlin-app'用'npm start'创建的应用程序时,我不断收到以下错误: kotlin-js failed. do you have kotlin installed? { "code":"ENOENT", "errno":"ENOENT", "syscall":"spawn C:\\Users\\Aidan\\Desktop\\my-react- app\\node_modules\\kotlin-compiler\\bin\\kotlinc-js", "path":"C:\\Users\\Aidan\\Desktop\\my-react-app\\node_modules\\kotlin- compiler\\bin\\kotlinc-js", "spawnargs": [ "-output", "C:\\Users\\Aidan\\Desktop\\my-react- app\\node_modules\\.cache\\kotlin-webpack\\kotlinApp.js", "-source-map", "-nowarn", "-module-kind", "commonjs", "-libraries", "C:\\Users\\Aidan\\Desktop\\my-react- app\\node_modules\\@jetbrains\\kotlin- extensions\\build\\classes\\main\\kotlin-extensions.meta.js:C:\\Use rs\\Aidan\\Desktop\\my-react-app\\node_modules\\@jetbrains\\kotlin- react\\build\\classes\\main\\kotlin- react.meta.js:C:\\Users\\Aidan\\Desktop\\my-react- app\\node_modules\\@jetbrains\\kotlin-react-dom\\ build\\classes\\main\\kotlin-react- dom.meta.js:C:\\Users\\Aidan\\Desktop\\my-react- app\\node_modules\\@hypnosphi\\kotlinx-html-js\\target\\classes\\kotlinx- html-js.meta.js", "C:\\Users\\Aidan\\Desktop\\my-react-app\\src" ] } 我曾尝试安装Kotlin编译器,npm在全局和本地安装kotlinc-js,并搜索节点模块以查看系统正在尝试访问的文件是否存在,并且没有任何更改。 任何帮助将不胜感激,如果这是一个容易解决的问题,我提前道歉。

通过Vert.x托管WebSocket,通过Socket.IO连接

我在Web服务(在Vert.x的Kotlin上编写)上设置了一个简单的WebSocket,然后通过Mocha / Socket.IO进行测试。 我的网络服务片段非常简单: httpServer.websocketHandler({ socket -> LOGGER.info("Websocket event!") LOGGER.info(" Path: ${socket.path()}") LOGGER.info(" Query: ${socket.query()}") LOGGER.info(" Headers: ${socket.headers()}") LOGGER.info(" URI: ${socket.uri()}") if (!socket.path().startsWith("/api/v1/ws/auction/")) { LOGGER.warn("Rejecting WS for lack of proper prefix, path: ${socket.path()}") socket.reject() } val split = socket.path().split("/api/v1/ws/auction/") if (split.size != 2) { LOGGER.warn("Rejecting WS for lack of Auction ID, with split: $split") socket.reject() […]

每个方法都需要@JsName注解吗?

我在这里试图让NodeJs和Kotlin一起为HelloWorld的例子工作。 根据Kotlin JS文档 , 重载的方法需要@JsName注解。 但以我的经验来看,即使是单一的方法也是如此。 如果没有这个注解,编译器会为方法名称添加一个后缀,如截图所示。 这是一个错误? 还是我错过了什么? 我使用NPM提供的Kotlin 1.1.0模块(如果需要,请检查上面的GitHub链接以获得完整的代码库)。

如何在Kotlin中使用一个叫做“val()”的函数? /扩展外部JS类

在尝试使用Kotlin的 Firebase Cloud功能时遇到问题。 从数据库触发数据时,使用snapshot.val(); 函数在Javascript中 。 在Kotlin中这是不可能的,因为val是Kotlin中的关键字。 我设法通过使用来解决这个问题 snapshot.`val()` 这样我可以在Kotlin中调用任何名字的函数。 现在我觉得每次都输入这个“重音符号”真的很烦,于是我试着创建一个扩展函数。 我的问题是,我不知道如何引用类型。 在Javascript中 ,访问数据库时是DeltaSnapshot或DataSnapshot 。 如何扩展外部类,或者如何以不同的名称调用它? Typealiases将不起作用,因为它们仅限于类/而不是支持功能。

是否有可能使用Kotlin构建完整的Node.js Web应用程序?

如果我理解正确,随着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互操作性足够强大,能够继续走下去吗,还是会比它的价值更麻烦呢?

使用运行在节点服务器上的Kotlin代码的Websockets

我想用Kotlin创建一个聊天应用程序。 Kotlin有websockets,所以我们似乎可以做到这一点。 现在的挑战是代码应该在node.js中编译 我尝试了简单的Kotlin代码,并成功地在节点中编译并运行良好。 我能够理解科特林代码如何作为节点代码运行。 我GOOGLE了很多使用节点运行的网络套接字,但我无法找到任何好的教程。 有一些使用SparkJava的教程,但我想要一些节点。 我有点卡住如何使网络套接字工作的节点。 任何指导步骤都将有所帮助

从kotlin创建新的节点模块对象

我正在尝试在Kotlin上编写一个小的node.js应用程序来测试和使用javascript interop。 从暴露原型“Bar”的外部节点模块“foo”,我试图创建一个“Bar”的新实例。 在Javascript中,我会简单地写一些类似的东西 var foo = require('foo') var bar = new foo.Bar() 在Kotlin中,我定义了一个外部函数'require'并加载了按照预期工作的模块: external fun require(module: String): dynamic … val foo = require("foo") //Somehow create a new Bar 现在我想创建一个Bar的新实例。 到目前为止我已经尝试过: 调用val bar = foo.Bar() 。 这被解释为功能,因此不起作用。 定义一个外部类Bar并创建一个新对象val bar = Bar() 我能找到的唯一的解决方法是通过本地JavaScript代码实例化对象: val bar = js("new foo.Bar()") 。 这工作,但有一些缺点: 它不是类型安全的(这是使用kotlin的美丽的一部分) 它在编译时没有被检查的变量foo有一个隐式依赖 这个模块暴露了很多这样的对象,它们有不同的构造函数参数集,这会导致很多本地代码,我想避免 有没有什么办法可以达到这个目的呢,纯粹的kotlin呢?