如何从 scala.js 调用 nodejs 模块?

How to invoke nodejs modules from scala.js?

我正在尝试使用 scala.js + nw.js 编写一些应用程序,并将在 scala.js 中使用一些节点模块。但是我不知道该怎么做。

说,有模块fs,我可以在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!");
    }
}); 

但是如何在 scala.js 中从头开始做同样的事情?

使用 js.Dynamic and js.DynamicImplits (see also ),您可以在 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!")
})

您可以在此处使用 Scala.js 中的 Node.js fs 模块找到更长的源代码: https://github.com/scala-js/scala-js/blob/v0.6.0/tools/js/src/main/scala/org/scalajs/core/tools/io/NodeVirtualFiles.scala