2009-08-05 4 views
3

Erlang 및 ErlyDB에 대한 나의 모험에 더 가깝다. ErlyDB 작업을 시도하고 있습니다. BeepBeepBeepBeep 및 ErlyDB 통합 문제

BeepBeep 환경 (Debugging ErlyDB and MySQL 참조) 외부에서 실행하면 My ErlyDB 설정이 올바르게 작동합니다. 기본적으로 작업 코드를 가져 와서 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} 
+0

정말로 나를 괴롭히는 비트는 작동하는 Erlang 모듈에서 ErlyDB 코드를 가져올 수 있으며, 컨트롤러에 넣으면 서버 오류가 나타납니다. –

답변

2

사용 패턴 일들이 일에 대한 호출까지 일을 주장하는 일치 : 새/1 :

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

당신은 만 포함 스택 추적,보고 예외 메시지도. 나는 그 오류가 당신이 'undef'예외를 얻는다 고 의심한다. 하지만 그것이 사실인지 확인하십시오. 스택 추적의 첫 번째 행은 thing : new/1을 인수로 [ "name", "value"]와 함께 호출 할 때 문제가 있음을 나타냅니다.

스택 추적에서 {home_controller,create,1}에 따라 home_controller : create/1을 호출하지 않는 handle_request의 한 절을 표시하는 것은 약간 이상합니다. handle_request/2 함수의 다른 절은 어떻게 생겼습니까?

+0

조언 해 주셔서 감사합니다. 위의 패턴을 사용하면 멋지게 작동합니다. 문제 중 하나는 예외가 서버에 의해 그냥 삼킨 것 같습니다 ... 브라우저는 서버 오류를보고하지만 서버 명령 줄에는 출력이 전혀 표시되지 않습니다. 디버깅하기가 다소 어렵습니다. –

+0

반환 값과 함께 dbg를 사용하고 왜 이벤트 추적을 처리하지 않습니까? – Zed

+0

dbg이란 무엇입니까? 나는 Erlang에 꽤 새로 왔습니다. –