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 检查Phoenix中是否传递了正确的参数_Elixir_Phoenix Framework - Fatal编程技术网

Elixir 检查Phoenix中是否传递了正确的参数

Elixir 检查Phoenix中是否传递了正确的参数,elixir,phoenix-framework,Elixir,Phoenix Framework,我使用Phoenix作为基本的JSON api,但在解决如何检查请求者是否传入了正确的参数时遇到了一些问题 假设用户发出post请求,该请求需要以下正文: { "user": { "email": "someone@example.com", "password": "mangoes" } } 我想检查用户是否在用户对象中传入了电子邮件和密码。目前,我正在控制器动作中执行类似操作: params[user][email] and params[user][passwor

我使用Phoenix作为基本的JSON api,但在解决如何检查请求者是否传入了正确的参数时遇到了一些问题

假设用户发出post请求,该请求需要以下正文:

{
  "user": {
    "email": "someone@example.com",
    "password": "mangoes"
  }
}
我想检查用户是否在用户对象中传入了电子邮件和密码。目前,我正在控制器动作中执行类似操作:

params[user][email] and params[user][password]
当然有更好的方法来检查正确的参数。可能与
擦洗参数有关
?如果是这样,我如何返回一条漂亮的JSON错误消息,而不是默认的
内部服务器错误


非常感谢您的建议。

您可以在操作本身的参数中检查它

  def show(conn, %{"user" => %{"email" => email, "password" => password}} = params) do
    render conn, "show.html", messenger: messenger
  end

有关此方法的示例,请转到

,您可以在操作本身的参数中检查它

  def show(conn, %{"user" => %{"email" => email, "password" => password}} = params) do
    render conn, "show.html", messenger: messenger
  end

有关此方法的示例,请访问

,感谢您的快速响应!这个方法唯一的问题是我需要完整的参数映射来传递给我的身份验证库login_用户函数,这样单个值就没有那么大的用处了。有什么建议吗?映射仍然在params变量中,您可以从控制器操作中的params中获得所需的任何值。这是因为我们在模式匹配中使用了变量
params
%%{“user”=>%%{“email”=>email,“password”=>password}}=params
Ahh true!谢谢你的帮助!谢谢你的快速回复!这个方法唯一的问题是我需要完整的参数映射来传递给我的身份验证库login_用户函数,这样单个值就没有那么大的用处了。有什么建议吗?映射仍然在params变量中,您可以从控制器操作中的params中获得所需的任何值。这是因为我们在模式匹配中使用了变量
params
%%{“user”=>%%{“email”=>email,“password”=>password}}=params
Ahh true!谢谢你的帮助!