在Elm编写控制台应用程序时是否有一种简单,受支持的方式,理想情况是在Node中?如果是这样,“Hello,World”是什么样的?
我知道有一些软件包,其中大部分都没有明显维护,声称可以做这样的事情,但它们在某种程度上看起来都像kludges。
答案 0 :(得分:2)
Elm是0.18的前端语言。它可能在将来是后端友好的。但现在不是。见here
但是,这并不意味着您无法将其与Node一起使用。你只需要使用" worker"模式并通过端口发送和发送所有数据。例如:
port module Main exposing (..)
import Platform
port getName : (String -> msg) -> Sub msg
port sendGreeting : String -> Cmd msg
type alias Model = {}
type Msg =
GreetUser String
update msg model =
case msg of
GreetUser name -> (model, sendGreeting name)
main = Platform.program
{ init = ( {}, Cmd.none)
, update = update
, subscriptions = \model -> getName GreetUser
}
然后你可以通过elm-make Main.elm --output elm.js
编译它,并在JS中这样需要它:
const Elm = require("./elm.js");
const app = Elm.Main.worker();
app.ports.sendGreeting.subscribe((greeting) => console.log(greeting));
app.ports.getName.send("Noah")
有很多应用程序可以执行此操作,例如: