更进一步的我与厄兰和埃利德的冒险。我正试图让erlydb与BeepBeep
当在哔哔声环境之外运行时,我的erlydb设置工作正常(请参见Debugging ErlyDB and MySQL)。我已经基本上采取了工作代码,并试图让它运行在哔哔声。
我的控制器中有以下代码:

handle_request("index",[]) ->
  erlydb:start(mysql,Database),
  erlydb:code_gen(["thing.erl"],mysql),
  NewThing = thing:new_with([{name, "name"},{value, "value"}]),
  thing:save(NewThing),
  {render,"home/index.html",[{data,"Hello World!"}]};

当我调用url时,响应输出“server error”。
没有报告其他错误或异常信息。
我已尝试在try/catch中包装调用,以查看是否存在潜在错误-对thing:new_with()的调用肯定有异常,但没有进一步的信息可用。
StackTrace报告:
{thing,new,[["name","value"]]}
{home_controller,create,1}
{home_controller,handle_request,3}
{beepbeep,process_request,4}
{test_web,loop,1}
{mochiweb_http,headers,4}
{proc_lib,init_p_do_apply,3}

最佳答案

使用模式匹配来断言事物工作到调用thing:new/1:

ok = erlydb:start(mysql,Database),
ok = erlydb:code_gen(["thing.erl"],mysql),

您只包括堆栈跟踪,也可以查看异常消息。我怀疑错误在于你得到了一个“undef”异常。但要检查一下。堆栈跟踪中的第一行指示调用thing:new/1时出现问题,参数为[“name”,“value”]。
有点奇怪的是,您在堆栈跟踪中显示了handle_请求的一个子句,它没有调用home_controller:create/1。handle_request/2函数中的其他子句是什么样的?

关于mysql - BeepBeep和ErlyDB集成问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1231870/

10-12 00:04