HW7
环境、工具
Win10操作系统、VSCode、Cobra
传送门
下载、测试使用Cobra
下载Cobra
在终端输入 go get -v github.com/spf13/cobra/cobra,即可下载Cobra
用Cobra init文件夹
在C:\GoPath\src新建一个文件夹HW7,然后执行C:\GoPath\bin\cobra.exe init HW7 --pkg-name HW7
发现HW7文件夹成功被cobra初始化
进行add操作并进行简单的测试
执行 C:\GoPath\bin\cobra.exe add register
发现HW7/cmd文件夹多了一个register.go文件
接下来修改register.go文件的代码(注:并未使用老师给的作业教程的方法,教程给的是StringP方法,这里使用StringVarP方法):
- 在init()函数中添加一行registerCmd.Flags().StringVarP(&username, “username”, “u”, “Anonymous”, “Help message for username”)
- 在init()函数外面添加一行var username string
- 在Run匿名回调函数中的原始代码删除,然后添加fmt.Println("register called by " + username)
- 在终端执行go run main.go register --username=user1
功能实现
需求
本次作业只用实现两个功能,我实现了用户注册( register)和用户登录(login)。
-
用户注册
注册新用户时,用户需设置一个唯一的用户名和一个密码。另外,还需登记邮箱及电话信息。
如果注册时提供的用户名已由其他用户使用,应反馈一个适当的出错信息;成功注册后,亦应反馈一个成功注册的信息。 -
用户登录
用户使用用户名和密码登录 Agenda 系统。
用户名和密码同时正确则登录成功并反馈一个成功登录的信息。否则,登录失败并反馈一个失败登录的信息。
add操作与创建文件
执行 C:\GoPath\bin\cobra.exe add register
执行 C:\GoPath\bin\cobra.exe add login
发现cmd文件夹如图所示:
在HW7文件夹下创建data/data.json用来保存用户数据
在HW7文件夹下创建entity/entity.go用来写内部逻辑
实现register
对应的entity中的CheckRegister函数为:
实现login
对应的entity中的CheckLogin函数为:
文件读写
测试
创建一个用户名为student1,密码为1111,email为[email protected],电话为11111的用户:
查看data.json文件:
创建一个用户名为student1,密码为1234,email为[email protected],电话为12345的用户:(用户重名)
使用用户名为student2,密码为1333进行登录:(用户不存在)
使用用户名为student1,密码为abcd进行登录:(密码错误)
使用用户名为student1,密码为1111进行登录: