2017-03-13 9 views
0

私はスカラライブラリを持っており、それを使ってスカラアプリケーションを構築することができます。しかし、私はそのライブラリをnode.jsで使いたいのですが、node.jsからscalaアプリケーションを制御したいのです。node.jsからscalaアプリケーションを実行できますか?

何とかできますか?

+0

1つの方法は、nodejsアプリケーションがHTTP要求を介して照会できるAPIとしてScalaライブラリを公開することです。 –

+0

これは興味深いようですが、私はscalaで多くの経験をしていないので、それがどのようにできるか教えてください! –

+1

Scalaはjavascriptにコンパイルすることができるので、ライブラリによってはnode.jsでネイティブに実行することができます –

答えて

0

Scala.jsというプロジェクトをご覧ください。使用するライブラリのソースコードがあると仮定すると、@JSExport annotationsを追加してJavaScriptにコンパイルして、Node.jsやブラウザを含むJavaScript環境で使用できるようにする必要があります。

例えば、(Scala.jsのドキュメントから)このサンプルScalaのクラスを見てみましょう:

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)" 
} 

さて、あなたは手で書かれたファイルからファイルや普通のJavaScriptクラスと同じように使用requireすることができるはず!

const Foo = require('./compiled-file-name').Foo; 
var foo = new Foo(3); 
console.log(foo.toString()); 

免責事項:私はScala.jsを使用したことが一度もありません。これは単にドキュメントから取られたものです。

+0

私はそれを試み、これらのエラーで終わります: 'code' [エラー]存在しないクラスを参照していますedu.knowitall.openie.OpenIE $ [エラー] tutorial.webapp.TutorialApp $から呼び出されました。 () [エラー] JSExportでJavaScriptにエクスポートされました [エラー]存在しないクラスを参照していますedu.knowitall.openie.OpenIE [エラー] tutorial.webapp.TutorialApp $から呼び出されました。 () [エラー] JavaScriptにJSExportでエクスポートされました 'code' 実際に私はnode.jsからOpen IE scala standaloneバージョンを使用しようとしています。 –

関連する問題