我可以通过node.js运行一个scala应用程序吗?
我有一个scala库,我可以用它来构建一个scala应用程序。但我想在node.js中使用该库,或者我想从node.js控制该scala应用程序。我可以通过node.js运行一个scala应用程序吗?
这可以以某种方式完成吗?
您可能想看看一个名为Scala.js的项目。假设您有要使用的库的源代码,您应该能够添加@JSExport
annotations并将其编译为JavaScript以便在JavaScript环境中使用,包括Node.js和浏览器。
例如,看看这个样本斯卡拉类(从Scala.js文档):
class Foo(val x: Int) {
override def toString(): String = s"Foo($x)"
}
要导出类是使用从JavaScript,只是类和任何函数前加@JSExport
要导出:现在
@JSExport
class Foo(val x: Int) {
// Just as a note, @JSExport isn't required on toString.
@JSExport
override def toString(): String = s"Foo($x)"
}
,你应该能够require
从手写文件,文件并使用它就像一个正常的JavaScript类!
const Foo = require('./compiled-file-name').Foo;
var foo = new Foo(3);
console.log(foo.toString());
免责声明:我从来没有使用Scala.js,这只是从文档中提取的。
我试过了,结果出现了这些错误: 'code' [error]引用不存在的类edu.knowitall.openie.OpenIE $ [error]从tutorial.webapp.TutorialApp $调用。
一种方法是将Scala库公开为一个API,Nodejs应用程序可以通过HTTP请求查询该API。 –
这看起来很有趣,你能告诉我怎么做,因为我没有太多的scala经验! –
Scala可以编译为JavaScript,因此根据库可能在node.js上本地运行它。 –