Post can';t使用put-in-erlang更新客户

Post can';t使用put-in-erlang更新客户,post,erlang,put,riak,Post,Erlang,Put,Riak,我正在尝试更新我的riak数据库中的客户,我收到以下错误消息: 我不知道是什么导致了这个错误,也不知道这个错误信息的含义 我使用的模块是: allowed_methods(Request, State) -> {['PUT'], Request, State}. content_types_accepted(Request, State) -> {[{"application/json",to_json}], Request, State}. 错误 webmac

我正在尝试更新我的riak数据库中的客户,我收到以下错误消息: 我不知道是什么导致了这个错误,也不知道这个错误信息的含义

我使用的模块是:

allowed_methods(Request, State) ->
    {['PUT'], Request, State}.

content_types_accepted(Request, State) ->
    {[{"application/json",to_json}], Request, State}.

错误

webmachine错误:path=“/customer/cus/update”{error,{error,unde,[{customer\u update,to\u json,[{wm\u reqdata,'PUT',http, {1,1},“127.0.0.1”,{wm_reqstate,#Port,{dict,4,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, {{[],[],[], [[mediaparams,{“字符集”,“UTF-8”}],[], [[resource_module | customer_update], ['content-type',11601120116,47104116109108],[], [content-encoding',1051001011101161051161121], [],[],[],[],[],[],[],[]}}}, 未定义,“127.0.0.1”,“REQDATA”,未定义,未定义, {wm_log_data,未定义,{1322989559450145},'PUT',{6, {content-length',{'content-length',121}, {“连接”、{“连接”、“保持活动”}、nil、nil}、{“内容类型”, {'Content-Type',“application/json;charset=UTF-8”},nil,{“host”, {'Host',“localhost:8000”}, {“expect”,{“expect”,“100 Continue”},nil,nil},{“用户代理”, {'User-Agent',“ApacheHttpClient/4.0.1(Java1.5)”},nil,nil}, “127.0.0.1”、“/updatecustomer”、{1,1}、, 404,0,未定义,未定义,未定义}, [],“/customer/cus/update”,“//customer/cus/update”, {dict,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}}}, [],“,”500107374182467108864,[],[],{6,{“内容长度”, {'Content-Length',“121”}, {“连接”、{“连接”、“保持活动”}、nil、nil}、{“内容类型”, {'Content-Type',“application/json;charset=UTF-8”},nil,{“host”, {'Host',“localhost:8000”}, {“expect”,{“expect”,“100 Continue”},nil,nil},{“用户代理”, {'User-Agent',“ApacheHttpClient/4.0.1(Java1.5)”},nil,nil}, 还没拿到,错, {1,{“内容类型”,{“内容类型”,“text/html”},nil,nil}, [“localhost”]、8000、[]}、未定义]}, {webmachine\u resource,resource\u call,3},{webmachine\u resource,do,3}, {webmachine\u decision\u core,资源调用,1}, {webmachine\u decision\u core,accept\u helper,0}, {webmachine_decision_core,decision,1}, {webmachine\u decision\u core,handle\u request,2}, {webmachine_mochiweb,loop,1}]}


您应该定义to_json/2函数

例如:

to_json(RD, Result) ->
    {mochijson:encode(Result), RD, Result}.

您应该定义to_json/2函数

例如:

to_json(RD, Result) ->
    {mochijson:encode(Result), RD, Result}.

不幸的是,我没有资格评论伊利亚的回答

TLDR:在json前面加上定义模块的名称

详细回答:


我在另一个模块中定义了_json

查看您的
content\u types\u accepted/2
调用,您没有指定要将json保存在哪个模块中,因此出现
undef
错误。Erlang函数调用总是MFA->module:function(参数),只有在函数位于同一个模块中时,才能省略该模块


另请参见

不幸的是,我没有资格对伊利亚的回答发表评论

TLDR:在json前面加上定义模块的名称

详细回答:


我在另一个模块中定义了_json

查看您的
content\u types\u accepted/2
调用,您没有指定要将json保存在哪个模块中,因此出现
undef
错误。Erlang函数调用总是MFA->module:function(参数),只有在函数位于同一个模块中时,才能省略该模块


另请参见

了解此错误的关键在于:


{error,{error,unde,[{customer\u update,to\u json。。。

它报告一个
undef
错误。这类错误描述如下:


您可以看到
undef
意味着我们有一个未定义的函数。错误是由于调用
customer\u update:to\u json(…)
导致的,而该调用当时并不存在。这就是您在这里遇到的问题。

理解此错误的关键是:


{error,{error,unde,[{customer\u update,to\u json。。。

它报告一个
undef
错误。这类错误描述如下:


您可以看到
undef
表示我们有一个未定义的函数。错误是由于调用
customer\u update:to\u json(…)
当时并不存在。这就是您在这里遇到的问题。

我在另一个模块中定义了\u json。+1.阅读了一些关于webmachine的文档,我认为这会有帮助。我在另一个模块中定义了\u json。+1.阅读了一些关于webmachine的文档,我认为这会有帮助