我有一個scala庫,我可以用它來構建一個scala應用程序。但我想在node.js中使用該庫,或者我想從node.js控制該scala應用程序。我可以通過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上本地運行它。 –