viper
和 cobra
创建用户时,我在 new_user.go
中收到此错误。错误如下:,我的代码被分成两个相互通信的文件,这是树层次结构:,为了连接到数据库,我创建了一个 yaml 文件 db-creds.yaml
来提取 config.go
的凭据。这里没有弹出错误:,config.go
文件,我放在顶部的错误是当我返回 result
时出现的错误。我正在为 cobra
实现 flag
选项,以使用 -n
后跟 name
来表示正在添加的新用户。,new_user.go
文件,这个项目的主要目的有三点:1.) 创建一个新用户,
2.) 授予任何用户特定权限
3.) 删除它们。
这就是我的最终目标。一次一步地进行,就遇到了这个错误。希望任何人都可以帮助我。 golang 对我来说是个新手,大约两周前开始使用。,go 为您提供了关于正在发生的事情的非常清晰的指示。 cobra 的
rune
成员期望其回调返回错误(如果成功,则返回 nil)。,这里,您返回的是结果,这不是错误,而是 sql 查询返回的特定类型。这就是您的函数应该的样子。,如果您需要 db.exec
命令的结果(似乎并非如此),您需要在 cobra 回调中执行所有必需的处理,因为它不是设计用于将值返回到主线程。,我在代码中注意到的一些关于处理错误的不良做法:,如果 go 函数返回错误,发生意外情况时不要惊慌或终止程序(就像您对 log.fatal
所做的那样)。相反,使用该错误返回将错误传播到主线程,并让它决定要做什么。,另一方面,如果出现问题,请勿返回结果。如果失败,您的 getconnection
函数应该能够返回错误:func getconnection() (*sql.db, error)
。然后,您应该在 rune
函数中处理此错误,而不是仅仅记录它并正常处理。,