如何从 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
我正在尝试使用 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
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