gin框架中的关于Model

关于Model

如果我们的应用非常简单的话,
我们可以在Controller里面处理常见的业务逻辑。
但是如果我们有一个功能想在多个控制器、或者多个模板里面复用的话,
那么我们就可以把公共的功能单独抽取出来作为一个模块(Model)。
Model是逐步抽象的过程,
一般我们会在Model里面封装一些公共的方法让不同Controller使用,
也可以在Model中实现和数据库打交道

modules\utils.go

在main.go同级中,创建modules目录,
在modules目录中创建utils.go文件,
在utils.go文件中,封装一个方法,用于获取当前时间。

package modules

import (
	"time"
)

// GetTime 获取当前时间
func GetTime() string {
	return time.Now().Format("2006-01-02 15:04:05")
}

在userController.go文件中,使用GetTime方法

package controllers

import (
	"fmt"
	"gin-quickstart/modules"

	"github.com/gin-gonic/gin"
)

type UserController struct {
}

func (u UserController) UserList(c *gin.Context) {
	//获取中间件设置的值
	userName, _ := c.Get("userName")
	fmt.Printf("获取中间件的值,userName的值是: %v,\n", userName)
	c.JSON(200, gin.H{
		"msg":  "获取用户列表成功",
		// 获取当前时间,在import中导入modules包
		"time": modules.GetTime(),
	})
}

func (u UserController) UserDetail(c *gin.Context) {
	c.JSON(200, gin.H{
		"msg": "获取用户详情成功",
	})
}

地址栏输入如:http://localhost:8080/user/list
会显示:

{
  "msg": "获取用户列表成功",
  "time": "2026-10-24 22:22:30"
}

尾声

在阿B上看这个小节的时候。
有8分钟的时候,不知道为啥有一种抗拒的情绪
很多事情,都没有我们想要中的那样难。
只是我们的抵触情绪放大了困难
解决办法:只要我们去做,这个问题就会有解决的办法
关于发布文章:我觉得以前写的一篇文章里面知识点有点多了
每一篇文章,最好1-2知识点,这样是比较好的。
方便自己后期快速的进行检索。

posted @ 2026-10-24 22:36  何人陪我共长生  阅读(3)  评论(0)    收藏  举报