我想在beego下使用captcha生成验证码。但是它有错误invalid memory address or nil pointer dereference。有谁知道如何解决这个问题?谢谢。Request Method: GETRequest URL: /accounts/forgotpasswordRemoteAddr: 127.0.0.1StackC:/Go/src/runtime/asm_amd64.s:573C:/Go/src/runtime/panic.go:505C:/Go/src/text/template/exec.go:137C:/Go/src/runtime/asm_amd64.s:573C:/Go/src/runtime/panic.go:505C:/Go/src/runtime/panic.go:63我的代码: conf\app.conf# Cache ProviderCacheProvider = redisCacheConnection = {"conn":"127.0.0.1:6379"}控制器\main.gopackage controllersimport ("github.com/astaxie/beego""github.com/astaxie/beego/cache" "github.com/astaxie/beego/utils/captcha")var( cpt *captcha.Captcha CacheProvider string = beego.AppConfig.String("CacheProvider") CacheConnection string = beego.AppConfig.String("CacheConnection"))func init() { store, _ := cache.NewCache(CacheProvider, CacheConnection) cpt = captcha.NewWithFilter("/accounts/captca/", store)}视图\忘记密码控制器\get.tpl<div class="w3-container w3-center"> <form method="post" id="mainForm"class="w3-container" style="margin-top:90px"> <div class="w3-card " style=" padding-left: 0px; padding-right: 0px; margin-top: 30px;"> <div class="w3-container"> <h1>Reset password</h1> </div><div class="w3-container" style=" padding-bottom: 16px;"> {{create_captcha}} <input type="text" class="w3-input "name="captcha"style="outline: none;"> <p style="text-align: left;margin-top: 0px;color:red"> {{if .Errors.Captcha}} {{.Errors.Captcha}}{{else}}‌{{end}}</p> <input type="submit" value="Request reset password" onclick="login()" class="w3-button w3-indigo w3-block w3-round-large"> </div> </div> </form> </div>
1 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
刚刚在我的本地测试了你的代码。错误来自缓存创建部分。
store, err := cache.NewCache(CacheProvider, CacheConnection)
if err != nil {
log.Fatal(err.Error())
os.Exit(0)
}
要获取详细错误,请检查err从 返回的变量cache.NewCache()。此外,最好始终记录来自错误对象的任何可能错误,不要忽略它。
这是错误日志:
2018/11/14 11:13:24 缓存:未知适配器名称“redis”(忘记导入?)
发生上述错误是因为缓存包找不到redis适配器。那是因为你还没有导入包。因此,让我们尝试导入它,然后您的问题将得到解决。
import (
"fmt"
"log"
"os"
"github.com/astaxie/beego"
"github.com/astaxie/beego/cache"
"github.com/astaxie/beego/utils/captcha"
_ "github.com/astaxie/beego/cache/redis" // <----- this one
)
由于我们不直接与缓存 redis 包交互,因此使用_.
- 1 回答
- 0 关注
- 133 浏览
添加回答
举报
0/150
提交
取消