简单的Agenda项目

本次实验的代码在go-online上

1.实验内容

使用cobra完成一个简单的agenda,只需选择CLI 命令行实用程序开发实战 - Agenda的第四部分agenda 开发项目中业务需求的两项完成便可,我选择实现agenda register和login。

2.实验经过

1.配置环境

本次实验要使用cobra,使用首先要安装cobra,一般使用指令go get -v github.com/spf13/cobra/cobra,但是会出现下面的错误:

Fetching https://golang.org/x/sys/unix?go-get=1
https fetch failed: Get https://golang.org/x/sys/unix?go-get=1: dial tcp 216.239.37.1:443: i/o timeout

要解决它们,需要在$GOPATH/src/golang.org/x目录下用 git clone 下载 sys 和 text 项目,然后使用 go install github.com/spf13/cobra/cobra获取cobra的可执行程序,其会在$GOPATH/src文件夹下。

如果你的$GOPATH/src文件夹中无golang.org文件夹,则需要你手动创建golang.org和x文件夹。然后在其目录下执行下列指令:
简单的Agenda项目_第1张图片
然后就再次执行指令:go get -v github.com/spf13/cobra/cobra,便可成功:
简单的Agenda项目_第2张图片

2.创建agenda项目

初始化项目:

C:\Users\LENOVO\go\bin\cobra init --pkg-name agenda

添加指令:

C:\Users\LENOVO\go\bin\cobra add register
C:\Users\LENOVO\go\bin\cobra add login

2.具体实现

register:

绑定参数:
在这里插入图片描述
存储用户信息的数据结构:
简单的Agenda项目_第3张图片
判断命令行参数是否正确:
简单的Agenda项目_第4张图片
读取储存用户信息的文件并判断用户是否存在:
简单的Agenda项目_第5张图片
将新用户写入存储文件中:
简单的Agenda项目_第6张图片

login:

绑定参数和判断命令行参数是否正确,以及使用的存储用户信息的数据结构这三个部分与register极其相似,所以就不再展示。

判断输入的登陆信息是否正确,返回错误部分的信息:
简单的Agenda项目_第7张图片

3.测试

要在go-online上执行程序,首先要修改main.go文件中cmd包的路径,否则无法执行。首先执行pwd命令查看当前文件路径,然后进行修改:
在这里插入图片描述
简单的Agenda项目_第8张图片
然后输入执行su命令并输入密码,进入root便可执行。

输入指令:go run main.go register -u qwe -p 121351
在这里插入图片描述

输入指令:go run main.go register -u qwe -p 121351 -e [email protected] -o 123456135
在这里插入图片描述
输入相同用户名的指令:go run main.go register -u qwe -p 1210351 -e [email protected] -o 1234561035
在这里插入图片描述
输入指令:go run main.go login -u qwe
在这里插入图片描述
输入指令:go run main.go login -u qwe -p 121351
在这里插入图片描述
输入用户名错误的指令:```go run main.go login -u 0qwe -p 121351``

在这里插入图片描述
输入密码错误的指令:go run main.go login -u qwe -p 0121351
在这里插入图片描述

你可能感兴趣的:(简单的Agenda项目)