我正在尝试使用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中做同样的事情?
答案 0 :(得分:9)
使用js.Dynamic
和js.DynamicImplits
(另请参阅a longer answer on the topic),您可以在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