设置 Gin 中未找到的路由

2024-02-28

我在 Gin 中设置了默认路由器和一些路由:

router := gin.Default()
router.POST("/users", save)
router.GET("/users",getAll)

但是我该如何处理 Gin 中找不到 404 路线呢?

最初,我使用的是 httprouter,我知道 Gin 使用它,所以这就是我最初拥有的......

router.NotFound = http.HandlerFunc(customNotFound)

和功能:

func customNotFound(w http.ResponseWriter, r *http.Request) {
    //return JSON
    return
}

但这对杜松子酒不起作用。

我需要能够使用返回 JSONc *gin.Context这样我就可以使用:

c.JSON(404, gin.H{"code": "PAGE_NOT_FOUND", "message": "Page not found"})

您正在寻找的是NoRoute http://godoc.org/github.com/gin-gonic/gin#Engine.NoRoute处理程序。

更确切地说:

r := gin.Default()

r.NoRoute(func(c *gin.Context) {
    c.JSON(404, gin.H{"code": "PAGE_NOT_FOUND", "message": "Page not found"})
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置 Gin 中未找到的路由 的相关文章

  • K8s更改配置映射并更新应用程序日志级别

    我想更改在 K8S 上运行的 Golang 应用程序的登录配置 我在本地尝试了以下代码 它按预期工作 我正在使用 viper 来监视配置文件更改 这是带有日志配置的配置图 apiVersion v1 kind ConfigMap data
  • 如何获取文件的 ctime、atime、mtime 并更改它们

    如何使用 Go 获取文件的 ctime mtime atime 并更改它们 在 Go 1 1 2 中 os Stat只能获取mtime os Chtimes 可以更改 mtime 和 atime 但不能更改 ctime Linux ctim
  • go 中的属性更改通知

    如何在 go 中向多个接收器发出 属性 更改信号 类似于在 Qt 中使用通知信号定义属性的方式 例如 如果您想象有一些值需要以多种方式显示 例如进度值可以同时显示为进度条和文本 当基础值发生变化时 两者都需要更新 一种方法可能是利用chan
  • 无法理解 5.6.1。注意事项:捕获迭代变量

    我正在学习 Go 但无法理解 var rmdirs func for dir range tempDirs os MkdirAll dir 0755 rmdirs append rmdirs func os RemoveAll dir NO
  • Go MSSQL 连接

    如何提供 MSSQL 连接 它说它始终与代码相关 即使信息不正确 也不会报错 package main import database sql fmt github com denisenkom go mssqldb log var ser
  • 优化 golang 中的数据结构/字对齐填充

    与我在 C 中学到的类似 我相信填充导致了两个结构体实例大小的差异 type Foo struct w byte 1 byte x byte 1 byte y uint64 8 bytes type Bar struct x byte 1
  • Go SQL查询不一致

    我在执行查询时遇到一些非常奇怪的不一致 并且想知道是否有人知道原因 想象一下我有一个定义如下的结构 type Result struct Afield string db A Bfield interface db B Cfield str
  • 给定方法值,获取接收者对象

    Go 有没有办法从方法值获取接收者对象 例如有没有这样的MagicFunc这将使以下程序输出字符串my info来自底层 Foo 实例 package main import fmt type Foo struct A string fun
  • Golang 按位运算以及一般字节操作

    我有一些 C 代码 可以对字节执行一些按位运算 我正在尝试在 golang 中做同样的事情 但遇到了困难 C 中的示例 byte a c byte data int j c data j c byte c j c a c 0xFF c 0x
  • 为什么我的 SQL 占位符没有被替换(使用 Go pq)?

    根据文档 我正在这样做 var thingname string asdf var id int err database QueryRow SELECT id from things where thing thingname Scan
  • 如何在C#中执行Go函数

    有没有办法从 C 执行 Go 函数 例如 对于 Python 我会使用 Ironpython 我知道我可以生成一个进程来执行 Go 脚本 但如果可能的话 我真的不想回退到这样的解决方案 Google 搜索没有显示任何内容 那么有什么方法可以
  • 如何在 Golang 中将 []byte XML 转换为 JSON 输出

    有没有办法在 Golang 中将 XML byte 转换为 JSON 输出 我有以下功能body is byte但我想在一些操作之后将此 XML 响应转换为 JSON 我试过了Unmarshal in xml打包没有成功 POST func
  • Gorm 总是返回带有 nil 值的结构

    我正在使用 Gorm 构建 Go Web API 作为 Amazon RDS 中 Postgresql 数据库的 ORM 问题是 Gorm 总是返回一片结构 其值全部为零 尽管数据库已经填充了数据 切片中的结构体数量是否合适取决于LIMIT
  • 如何从非英语字符串解析go中的月份

    我想将以下字符串解析为 go 中的日期 This item will be released on March 9 2014 我跟着this https stackoverflow com questions 14106541 go par
  • 重新插入通道导致死锁

    我有稳定的入站 作业 流 将其输入到无缓冲通道中 我有一个for range循环来迭代项目并处理它们 如果处理该项目失败 我会将项目重新插入通道中 以便稍后重试 问题是当我将项目重新插入通道时 它陷入僵局 我明白为什么会发生这种情况 处理器
  • 我应该避免在 golang 中使用单例包吗?

    现在我有一个包裹store包含以下内容 package store var db Database func Open url string error open db connection func FindAll model inter
  • 如何在 Ubuntu 中将 Go 程序作为守护进程启动?

    在 Ubuntu 中将 Go 程序作为守护进程启动的正确方法是什么 然后我将使用 Monit 对其进行监控 我应该做这样的事情 go run myapp go 我应该考虑 Go 特有的事情吗 您应该为您的程序构建一个可执行文件 go bui
  • 递归追加到切片不起作用

    我正在尝试学习 Go 但我不明白为什么递归调用堆栈末尾的这段代码返回一个空切片 有帮助吗 还tmp甚至似乎没有在调试器中注册 func main input 3 int 4 6 7 expected 6 7 4 6 7 4 6 4 7 fm
  • GORM中的一对多递归关系

    我需要有一个Organization与父级有关系 像这样的事情 type Organization struct gorm Model Parent Organization gorm ForeignKey ParentId Name st
  • 如何在Go中将字节数组转换为字符串[重复]

    这个问题在这里已经有答案了 byte字符串会引发错误 string byte n 也会引发错误 顺便说一下 例如 文件名的 sha1 值是字符串 它是否明确需要 utf 8 或任何其他编码集 谢谢 我用来转换的最简单方法byte to st

随机推荐

  • 更改 matplotlib 动画中的 RGB 颜色

    我似乎无法通过 RGB 定义更改 Matplotlib 散点图的颜色 我错了吗 这是一个代码 已在堆栈溢出中给出 它使用浮点数索引的颜色 import matplotlib pyplot as plt import numpy as np
  • 我们如何在子类中 typedef 或重新定义模板化嵌套类?

    考虑以下 template
  • 如何使用opencv获取位置并绘制矩形?

    我想在图片框中移动并单击鼠标时获得一个位置 我想在单击鼠标的时间和位置在图像窗口中创建矩形 我有一个来自文档的简单代码 include stdafx h include opencv2 highgui highgui hpp include
  • 如何从c目标文件生成可执行文件?

    如何将目标文件制作为可执行文件 您需要链接目标文件 您的命令 gcc c o file cgi file c 将 file c 编译为目标文件 通常称为file o 如果你摆脱了 c 它将直接生成可执行文件 gcc o file cgi f
  • x 轴转换为浮点数

    我正在尝试绘制按年份分组的数据 并且对于每年 我想计算用户数量 下面 我刚刚将日期列从浮点转换为整数 This is my plot 如果您看到 x 轴 我的年份代码似乎已变成浮点数 并且每个代码相距 0 5 个刻度 我如何使其成为纯整数
  • 在Linux上编译VLC:错误找不到Lua

    我正在尝试为 Linux 编译 VLC 当我运行配置脚本时 我收到错误消息 配置 错误 找不到 lua 有些人需要Lua 接口 rc telnet http 以及许多其他自定义脚本 使用 disable lua 忽略此错误 我的系统上有lu
  • Ruby,没有将 Symbol 隐式转换为 Integer

    昨天我已经在 没有将 Symbol 隐式转换为 Integer Ruby https stackoverflow com questions 38482973 no implicit conversion of symbol into in
  • shell命令SET -X在脚本中的意思[重复]

    这个问题在这里已经有答案了 所以我有一个文件部署 sh 并且它有 shell 脚本 自从我知道这件事以来 我就有点困惑 这是什么意思set x实际上意味着 运行该文件后 我观察到在文件中的命令后面写入的命令在终端中被提及 sign 就像如果
  • 文档中的 tf.data.Dataset.window 示例失败

    我正在尝试使用一个例子TF文档 https www tensorflow org api docs python tf data Dataset window for tf data Dataset window并且文档中的示例失败了 源自
  • 使用外键批量插入表

    我有一个客户表 其中包含客户的详细信息 以下是字段 CustId PrimaryKey Name Date of Birth 我有另一个表 资产信息 有以下字段 AssetId PrimaryKey AssetValue CustId Fo
  • 尝试执行 jQuery AJAX 调用时 JavaScript 错误意外标识符

    我有这个 jQuery 代码
  • 当前上下文中不存在名称“SqlDataSourceEnumerator”

    在 Visual Studio 中的 C net 5 程序中 我正在测试使用 SqlDataSourceEnumerator 的代码 public static List
  • 全关联缓存是否比直接映射缓存具有更高的未命中率?

    以下是一个面试问题 为什么全关联缓存的未命中率可能高于直接映射缓存 我认为这根本不可能 有人可以分享一些对此的见解吗 你应该假设它们大小相同吗 如果不是 则如果大多数未命中是 容量 未命中 而不是冲突未命中 则较小的全关联高速缓存仍然可能会
  • 如何让MySQL正确处理UTF-8

    的回应之一我昨天问的一个问题 https stackoverflow com questions 198721 converting a word document into usable html in php建议我确保我的数据库可以正确
  • 更新反应组件而没有父组件在其之外

    如果组件没有父组件 我应该如何正确更新组件 我找到了两种方法来做到这一点 第一种方法 https jsfiddle net 69z2wepo 28597 这里我通过改变组件的状态来更新组件 var Hello React createCla
  • 捕获无法处理的异常并重新加注

    这是我的问题的后续使用 SQLAlchemy 和多处理挂入 Python 脚本 https stackoverflow com questions 8785899 hang in python script using sqlalchemy
  • jquery 附加到列表的前面/顶部

    我有这个无序列表 ul li two li li three li ul 有没有办法可以将其添加到无序列表中 使其最终像这样 ul li ONE li li two li li three li ul 请注意 ONE 已添加到列表的前面 顶
  • 打开 ViewPager2 到特定位置而不滚动

    我已经用一些视频实现了回收视图 say 10 单击任何项 目都会打开一个viewpager2 which is on some other activity与所有物品and单击的一个 来自recyclerview 显示 之后 用户只能从那里
  • 是否可以让 Visual Studio 索引源代码以改进字符串搜索?

    我经常在 VS2008 中使用字符串搜索功能来构建整个解决方案 有没有办法通过让 VS2008 索引所有源代码和配置文件来提高其搜索速度 类似于 Google 桌面索引文件的方式 这增加了对 VS 解决方案中所有文件的即时全文搜索 不是免费
  • 设置 Gin 中未找到的路由

    我在 Gin 中设置了默认路由器和一些路由 router gin Default router POST users save router GET users getAll 但是我该如何处理 Gin 中找不到 404 路线呢 最初 我使用