我使用'Building web application with Erlang' book的yaws教程关注REST API。
启动$ 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
文件here。
如何定义记录?我试图添加rd(airport, {code, city, country, name}).
但没有成功。
答案 0 :(得分:1)
记录'机场'在模块休息中定义,'休息'中的所有功能都知道记录'机场'。但是当你启动应用程序时,erlang会执行.erlang文件,这与模块休息无关。所以,erlang只是不知道什么是记录机场以及在哪里找到它。
最简单的解决方法我相信 - 在模块rest中定义一些函数(例如'init'),这个函数必须包含你现在所有的.erlang文件,导出它,并在.erlang文件中调用其余:的init()