3

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}
4

1 に答える 1

2

パターン マッチングを使用して、thing:new/1 の呼び出しまで物事が機能することをアサートします。

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

スタック トレースのみを含め、例外メッセージも確認します。エラーは、「undef」例外が発生したことだと思います。しかし、そうであることを確認してください。スタック トレースの最初の行は、["name", "value"] を引数として thing:new/1 を呼び出す際の問題であることを示しています。

{home_controller,create,1}スタック トレースのように、home_controller:create/1 を呼び出していない handle_request の 1 つの句を示しているのは少し奇妙です。handle_request/2 関数の他の節はどのようになっていますか?

于 2009-08-10T14:20:55.670 に答える