HW7

环境、工具

Win10操作系统、VSCode、Cobra

传送门

github中的代码

下载、测试使用Cobra

下载Cobra

在终端输入 go get -v github.com/spf13/cobra/cobra,即可下载Cobra
HW7

用Cobra init文件夹
在C:\GoPath\src新建一个文件夹HW7,然后执行C:\GoPath\bin\cobra.exe init HW7 --pkg-name HW7
HW7

发现HW7文件夹成功被cobra初始化
HW7

进行add操作并进行简单的测试
执行 C:\GoPath\bin\cobra.exe add register
HW7

发现HW7/cmd文件夹多了一个register.go文件
HW7

接下来修改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
    HW7

功能实现

需求

本次作业只用实现两个功能,我实现了用户注册( register)和用户登录(login)。

  • 用户注册
    注册新用户时,用户需设置一个唯一的用户名和一个密码。另外,还需登记邮箱及电话信息。
    如果注册时提供的用户名已由其他用户使用,应反馈一个适当的出错信息;成功注册后,亦应反馈一个成功注册的信息。
  • 用户登录
    用户使用用户名和密码登录 Agenda 系统。
    用户名和密码同时正确则登录成功并反馈一个成功登录的信息。否则,登录失败并反馈一个失败登录的信息。

add操作与创建文件

执行 C:\GoPath\bin\cobra.exe add register
执行 C:\GoPath\bin\cobra.exe add login
发现cmd文件夹如图所示:
HW7
在HW7文件夹下创建data/data.json用来保存用户数据
在HW7文件夹下创建entity/entity.go用来写内部逻辑

实现register

HW7
对应的entity中的CheckRegister函数为:
HW7

实现login

HW7
对应的entity中的CheckLogin函数为:
HW7

文件读写

HW7

测试

创建一个用户名为student1,密码为1111,email为[email protected],电话为11111的用户:
HW7
查看data.json文件:
HW7
创建一个用户名为student1,密码为1234,email为[email protected],电话为12345的用户:(用户重名)
HW7
使用用户名为student2,密码为1333进行登录:(用户不存在)
HW7
使用用户名为student1,密码为abcd进行登录:(密码错误)
HW7
使用用户名为student1,密码为1111进行登录:
HW7