go-admin-team / go-admin

基于Gin + Vue + Element UI & Arco Design & Ant Design 的前后端分离权限管理系统脚手架(包含了:多租户的支持,基础用户管理功能,jwt鉴权,代码生成器,RBAC资源控制,表单构建,定时任务等)3分钟构建自己的中后台项目;项目文档》:https://www.go-admin.pro V2 Demo: https://vue2.go-admin.dev V3 Demo: https://vue3.go-admin.dev Antd 订阅版:https://antd.go-admin.pro
https://www.go-admin.pro
MIT License
11.15k stars 2.32k forks source link

编写 go-admin 应用,第 1 步 #790

Closed wuqiong818 closed 1 month ago

wuqiong818 commented 3 months ago

文档连接:https://mydearzwj.gitee.io/go-admin-doc/guide/intro/tutorial01.html#%E5%BC%80%E5%A7%8B%E9%A1%B9%E7%9B%AE

测试代码和错误结果: app/admin/apis/article.go package apis

import ( "fmt" "github.com/gin-gonic/gin" "go-admin/common/apis" )

type Article struct { apis.Api }

func (a Article) GetArticleList(c gin.Context) { fmt.Println("a是空的吗?", a) fmt.Println("请求成功,准备数据的返回") a.OK("hello world!", "success") //可以改成以下代码,直接进行返回,不要使用a.OK方法,不然会出现空指针异常 //response.OK(c, "hello world!", "success") } app/admin/router/article.go package router

import ( "fmt" "github.com/gin-gonic/gin" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" "go-admin/app/admin/apis" )

func init() { routerCheckRole = append(routerCheckRole, registerArticleRouter) }

// 需认证的路由代码 func registerArticleRouter(v1 gin.RouterGroup, authMiddleware jwt.GinJWTMiddleware) { api := &apis.Article{} r := v1.Group("") { fmt.Println("是不是空的api", api) r.GET("/articleList", api.GetArticleList) } } ** 错误返回 { "code": 500, "msg": "runtime error: invalid memory address or nil pointer dereference" }

建议更改方式,见app/admin/apis/article.go的注释,要么使用原生的response.OK()返回;要么给方法的revecier接收者进行赋初值操作。

wuqiong818 commented 3 months ago

func (a Article) GetArticleList(c gin.Context) { err := a.MakeContext(c). MakeOrm(). Errors if err != nil { a.Logger.Error(err) a.Error(500, err, err.Error()) return } fmt.Println("a是空的吗?", a) fmt.Println("请求成功,准备数据的返回") a.OK("hello world!", "success") }

wenjianzhang commented 2 months ago

文档中有部分内容没有跟上版本的更新,对此我们深表歉意,会尽量检查更新,同时也希望您可以提交文档的pr,谢谢!