Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir-Plug-无函数子句匹配_Elixir - Fatal编程技术网

Elixir-Plug-无函数子句匹配

Elixir-Plug-无函数子句匹配,elixir,Elixir,我正在发送此PUThttp请求: 我得到了这个错误: 18:31:31.575 [error] #PID<0.505.0> running Api.Router terminated Server: 192.168.20.7:4000 (http) Request: PUT /products/?id=76 ** (exit) an exception was raised: ** (FunctionClauseError) no function clause matchi

我正在发送此
PUT
http请求:

我得到了这个错误:

18:31:31.575 [error] #PID<0.505.0> running Api.Router terminated
Server: 192.168.20.7:4000 (http)
Request: PUT /products/?id=76
** (exit) an exception was raised:
    ** (FunctionClauseError) no function clause matching in Api.Router.do_match/4
        (api) lib/api/router.ex:26: Api.Router.do_match(%Plug.Conn{adapter: {Plug.Adapters.Cowboy.Conn, :..
.}, assigns: %{}, before_send: [], body_params: %Plug.Conn.Unfetched{aspect: :body_params}, cookies: %Plug.
Conn.Unfetched{aspect: :cookies}, halted: false, host: "192.168.20.7", method: "PUT", owner: #PID<0.505.0>,
 params: %Plug.Conn.Unfetched{aspect: :params}, path_info: ["products"], path_params: %{}, peer: {{192, 168
, 20, 16}, 59728}, port: 4000, private: %{}, query_params: %Plug.Conn.Unfetched{aspect: :query_params}, que
ry_string: "id=76", remote_ip: {192, 168, 20, 16}, req_cookies: %Plug.Conn.Unfetched{aspect: :cookies}, req
_headers: [{"host", "192.168.20.7:4000"}, {"content-type", "application/json"}, {"user-agent", "vepo/1 CFNe
twork/811.5.4 Darwin/16.6.0"}, {"connection", "keep-alive"}, {"accept", "*/*"}, {"accept-language", "en-us"
}, {"content-length", "66"}, {"accept-encoding", "gzip, deflate"}, {"x-requested-with", "XMLHttpRequest"}],
 request_path: "/products/", resp_body: nil, resp_cookies: %{}, resp_headers: [{"cache-control", "max-age=0
, private, must-revalidate"}], scheme: :http, script_name: [], secret_key_base: nil, state: :unset, status:
 nil}, "PUT", ["products"], "192.168.20.7")
        (api) lib/api/router.ex:1: Api.Router.plug_builder_call/2
        (api) lib/plug/debugger.ex:123: Api.Router.call/2
        (plug) lib/plug/adapters/cowboy/handler.ex:15: Plug.Adapters.Cowboy.Handler.upgrade/4
        (cowboy) /Users/Ben/Development/Projects/vepo/api/deps/cowboy/src/cowboy_protocol.erl:442: :cowboy_
protocol.execute/4

我知道这个错误意味着我的路由器没有处理这个请求。此路径是否应该
放置“/products/:id”
管理该请求?

为了将来的读者:

put "/products/:id"
映射到:

#                                ⇓⇓⇓
http://192.168.20.7:4000/products/76
不应:

#                                 ⇓⇓⇓⇓⇓⇓ 
http://192.168.20.7:4000/products/?id=76
后者被映射到

put "/products"

为了未来的读者:

put "/products/:id"
映射到:

#                                ⇓⇓⇓
http://192.168.20.7:4000/products/76
不应:

#                                 ⇓⇓⇓⇓⇓⇓ 
http://192.168.20.7:4000/products/?id=76
后者被映射到

put "/products"

请发布
mix phoenix.routes
的输出。另外,
put”/products/:id“
映射到
http://192.168.20.7:4000/products/76
不发送到
http://192.168.20.7:4000/products/?id=76
@mudasobwa我没有用凤凰城。但我想你已经指出了我的错误。非常感谢。请发布
mix phoenix.routes
的输出。另外,
put”/products/:id“
映射到
http://192.168.20.7:4000/products/76
不发送到
http://192.168.20.7:4000/products/?id=76
@mudasobwa我没有用凤凰城。但我想你已经指出了我的错误。非常感谢。