gpt4 book ai didi

Elixir 插头 : correct way to get form data from a post request

转载 作者:行者123 更新时间:2023-12-02 06:31:38 25 4
gpt4 key购买 nike

我在玩 plug router并尝试在我的路由器中读取一个简单的 post 请求的正文:

表格

<form action="/create_item" method="post">
<input type="text" value="whatever" name="name">
<input type="number" value="99" name="age">
<input type="submit">
</form>

我的路由器
post("/create_item") do
{:ok, data, _conn} = read_body(conn)
send_resp(conn, 200, data)
end

如果我提交表单,这将呈现 name=input-value到页面,但随后我必须解析该字符串才能获取值。这闻起来是错误的做法。

根据我对 elixir 的一点经验,我似乎应该在 read_body(conn) 上做一些类似模式匹配的事情。拉出每个 key: value从我的表格中,但我在 plug docs 中找不到任何关于此的信息.我尝试通过凤凰来源挖掘想法,但这有点超出了我的 Elixir 知识。有没有明显的 parse_form_data/1我缺少的功能?

最佳答案

Plug.Conn.read_body/1只读取请求的正文,而不解析它。要解析正文,您通常要使用 Plug.Parsers plug,它根据内容类型读取和解析请求的正文。

例如,如果您像这样插入它:

plug Plug.Parsers, parsers: [:urlencoded]

之后在管道中的任何地方都会有 conn.params可用的。

关于 Elixir 插头 : correct way to get form data from a post request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34476915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com