0

我遵循“使用 Erlang 构建 Web 应用程序”一书的 REST API 和 yaws 教程。

启动时出现以下错误$ yaws

file:path_eval([".","/Users/<uername>"],".erlang"): error on line 3: 3: evaluation failed with reason error:{undefined_record,airport} and stacktrace [{erl_eval,exprs,2,[]}]

.erlang文件:

application:start(mnesia).
mnesia:create_table(airport,[{attributes, record_info(fields, airport)}, {index, [country]}]).

rest.erl文件可以在这里找到。

如何定义记录?我尝试添加rd(airport, {code, city, country, name}).但没有成功。

4

1 回答 1

1

记录'airport'在模块rest中定义,'rest'中的所有函数都知道记录'airport'。但是当你启动你的应用程序时,erlang 会执行 .erlang 文件,这与模块 rest 无关。所以,erlang 只是不知道什么是记录机场以及在哪里可以找到它。

我相信最简单的解决方法 - 是在模块 rest 中定义一些函数(例如'init'),这个函数必须包含你现在在 .erlang 文件中拥有的所有内容,导出它,然后在 .erlang 文件中调用 rest:init ()。

于 2013-10-13T22:22:08.450 回答