【发布时间】:2017-10-17 20:13:53
【问题描述】:
我正在使用 erlang 氮气 web 框架开发 webapp,研究 elixir。 有没有办法我可以在长生不老药中编码并使用氮气网络框架和现有的开发代码?
【问题讨论】:
-
问一个更具体的问题。您可以轻松地从 Elixir 调用 Erlang 库。
我正在使用 erlang 氮气 web 框架开发 webapp,研究 elixir。 有没有办法我可以在长生不老药中编码并使用氮气网络框架和现有的开发代码?
【问题讨论】:
我认为有一种方法可以使用 Elixir 来处理 Nitrogen,但我不鼓励这样做。相反,最好创建一个伞形应用程序,其中 Web 部分将用 Erlang 和 Nitrogen 编写,部分将用 Elixir 编写(如逻辑和/或 DB 接口)。
【讨论】:
似乎 Nitrogen 路由器采用 .erl 文件。我没有看路由器的实现细节。因此,我假设您将需要所有主要模块的 Erlang 包装器。此外,Nitrogen 广泛使用 Erlang 记录。您可以将 Erlang 记录转换为 Elixir 结构然后再转换回来,但这可能很麻烦。
您可以在 Elixir 模块中实现一些功能并从 Erlang 代码中调用它们。你也可以很容易地从 Elixir 调用 Erlang 模块。
例如:
# Erlang to Elixir
Elixir.MyModule.function(Var, atom, <<"Some char List">>).
# Elixir to Erlang
:module.function(String.to_charlist("some string"), :atom, var)
看看 Elixir Record 在 Elixir 中处理 Erlang 记录。
请记住,您需要来回转换字符串。
如果您希望主项目是 Elixir 混合项目,则创建一个 src 目录来放置 Erlang 源文件。
我有一种感觉,这一切都比它的价值更麻烦。但你应该对此作出判断。
【讨论】: