继续我和Erlang和ErlyDB的冒险。我试图让ErlyDB和BeepBeep一起工作
当在ErlyDB环境之外运行时,我的BeepBeep设置正确工作(参见调试ErlyDB和MySQL)。我基本上采用了工作代码,并试图让它在BeepBeep中运行。
我的控制器中有以下代码:
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时,响应输出“服务器错误”。没有报告其他错误或异常信息。
我尝试过将调用包装在try/catch中,以查看是否存在潜在错误--对thing:new_with(),的调用肯定有异常,但没有进一步的信息可用。
堆栈跟踪报告:
{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}发布于 2009-08-10 14:20:55
使用模式匹配来断言事物执行到了对thing的调用:new/1:
ok = erlydb:start(mysql,Database),
ok = erlydb:code_gen(["thing.erl"],mysql), 您只包含堆栈跟踪,还可以查看异常消息。我怀疑错误是您得到了一个'undef‘异常。但要确认确实如此。堆栈跟踪中的第一行表示调用对象的问题:以"name“、"value”作为参数的new/1。
稍微奇怪的是,您在堆栈跟踪中显示了handle_request的一个不调用home_ {home_controller,create,1}的子句:create/1。handle_request/2函数中的其他子句是什么样子的?
https://stackoverflow.com/questions/1231870
复制相似问题