英文:
how can I validate and process html form (taking in inpute from the ui login interface) using fiber framework golang programming language
问题
请帮我使用Fiber框架在Golang中进行输入处理。
<form action="/" method="POST" novalidate>
<div>
<p><label>您的电子邮件:</label></p>
<p><input type="email" name="email"></p>
</div>
<div>
<p><label>您的留言:</label></p>
<p><textarea name="content"></textarea></p>
</div>
<div>
<input type="submit" value="发送消息">
</div>
</form> ```
<details>
<summary>英文:</summary>
please help me to take input with fiber golang framework
``` <h1>Contact</h1>
<form action="/" method="POST" novalidate>
<div>
<p><label>Your email:</label></p>
<p><input type="email" name="email"></p>
</div>
<div>
<p><label>Your message:</label></p>
<p><textarea name="content"></textarea></p>
</div>
<div>
<input type="submit" value="Send message">
</div>
</form> ```
</details>
# 答案1
**得分**: 1
你可以使用`c.FormValue`来处理简单的表单,需要注意的是返回值始终是一个字符串。所以如果你想发送整数,你需要在处理程序中手动将它们转换为整数。对于更复杂的表单,比如发送文件,你可以使用`c.MultipartForm`。
```go
func main() {
// 创建一个新的fiber实例并在整个应用程序中使用
app := fiber.New()
// 中间件,允许所有客户端使用http进行通信并允许跨域
app.Use(cors.New())
// 主页
app.Get("/", func(c *fiber.Ctx) error {
// 使用传递的内容渲染“index”模板
return c.Render("index", fiber.Map{})
})
// app.Post因为method="POST"
// "/"因为action="/"
app.Post("/", handleFormUpload)
// 在端口4000上启动开发服务器
log.Fatal(app.Listen(":4000"))
}
func handleFormUpload(c *fiber.Ctx) error {
email := c.FormValue("email")
content := c.FormValue("content")
fmt.Println(email, content)
return c.JSON(fiber.Map{"status": 201, "message": "Created!"})
}
希望对你有帮助!
英文:
You can use c.FormValue
for simple forms, and keep in mind that the return value is always a string. So if you want to send integers as well you will have to manually convert them to integers in handlers. for more complex forms like sending files you can use c.MultipartForm
.
func main() {
// create new fiber instance and use across whole app
app := fiber.New()
// middleware to allow all clients to communicate using http and allow cors
app.Use(cors.New())
// homepage
app.Get("/", func(c *fiber.Ctx) error {
// rendering the "index" template with content passing
return c.Render("index", fiber.Map{})
})
// app.Post because method="POST"
// "/" because action="/"
app.Post("/", handleFormUpload)
// start dev server on port 4000
log.Fatal(app.Listen(":4000"))
}
func handleFormUpload(c *fiber.Ctx) error {
email := c.FormValue("email")
content := c.FormValue("content")
fmt.Println(email, content)
return c.JSON(fiber.Map{"status": 201, "message": "Created!"})
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论