上一个章节中已经开始逐渐搭建了一个 web 页面,现在我们开始逐步完善页面上的功能,首先要完成的是登录和注册功能。
?接受表单数据
注册页面的 HTML 元素不在详细写出,具体页面代码可以直接参考Github 上代码。
页面完成后布局:
注册页面有三个输入框,分别为 email
,password
和 password again
。
完善后端 Gin 代码。我们在 initRouter
中 userGroup
中编写新的接口。
userRouter.POST("/register", handler.UserRegister)
编写完新的接口就要开始编写 Handler
。
func UserRegister(context *gin.Context) {
email := context.PostForm("email")
password := context.DefaultPostForm("password", "Wa123456")
passwordAgain := context.DefaultPostForm("password-again", "Wa123456")
println("email", email, "password", password, "password again", passwordAgain)
}
UserRegister
方法中采用新的方式来接受 Post 请求提交的表单参数,PostForm
和 DefaultPostForm
。PostForm
直接接受参数,而 DefaultPostForm
可以设置一个默认值,如果前端没有进行传值,那么我们可以设置默认值,如上面的代码,如果前端没有将密码传输过来我们可以设置一个默认密码。
当我们运行并且输入的时候,在控制台上可以清楚的看到我们在表单上的输入。
当我们项目功能完善的时候,就可以完善我们的单元测试。
此时的单元测试交之前有点复杂。
首先我们要构造一个结构,该结构是为了帮助我们将我们要提交的信息存放到表单中,同时要指定请求头信息。
func TestUserPostForm(t *testing.T) {
value := url.Values{
}
value