2015-02-22 12 views
8

Próbuję użyć scala.js + nw.js do napisania jakiejś aplikacji i użyję niektórych modułów węzła w scala.js. Ale nie jestem pewien, jak to zrobić.Jak wywołać moduły nodejs z scala.js?

Say, jest moduł fs i mogę napisać taki kod w JavaScript:

var fs = require('fs'); 
fs.writeFile("/tmp/test", "Hey there!", function(err) { 
    if(err) { 
     console.log(err); 
    } else { 
     console.log("The file was saved!"); 
    } 
}); 

Ale jak zrobić to samo w scala.js od podstaw?

Odpowiedz

9

Korzystanie js.Dynamic i js.DynamicImplits (patrz również a longer answer on the topic), można transliterować swój kod w Scala.js:

import scala.scalajs.js 
import js.Dynamic.{global => g} 
import js.DynamicImplicits._ 

val fs = g.require("fs") 
fs.writeFile("/tmp/test", "Hey there!", { (err: js.Dynamic) => 
    if (err) 
    console.log(err) 
    else 
    console.log("The file was saved!") 
}) 

można znaleźć dłuższego kodu źródłowego za pomocą modułu node.js fs w Scala.js tutaj : https://github.com/scala-js/scala-js/blob/v0.6.0/tools/js/src/main/scala/org/scalajs/core/tools/io/NodeVirtualFiles.scala

+0

Czy nie powinno to być 'g.require (" fs ")'? – Martijn

+0

@Martijn Tak, powinno. Poprawiłem odpowiedź, dzięki. – sjrd