Golang 調試技巧:在 Goland 中查看 Beego 控制器接收的前端字段參數

🐛 Golang 調試技巧:在 Goland 中查看 Beego 控制器接收的前端字段參數

在使用 Beego 開發 Web 項目時,我們常常會在控制器中通過 c.GetString()c.GetInt() 等方法獲取前端頁面傳過來的字段值。而在調試過程中,如何在 Goland 中打斷點并查看這些參數是否正確傳入,是開發中非常重要的一環。

本文將詳細介紹 如何在 Goland 斷點查看 Beego 控制器中 c 對象攜帶的所有前端參數字段


🧩 背景代碼

以下是一個典型的博文保存控制器方法:

// Save 處理新增或更新博文數據的邏輯
func (c *AdminController) Save() {post := models.Post{}post.UserId = 1post.Title = c.GetString("title")post.Content = c.GetString("content")post.IsTop, _ = c.GetInt8("is_top")post.Types, _ = c.GetInt8("types")post.Tags = c.GetString("tags")post.Url = c.GetString("url")post.CategoryId, _ = c.GetInt("cate_id")post.Info = c.GetString("info")post.Image = c.GetString("Image")post.Created = time.Now()post.Updated = time.Now()id, _ := c.GetInt("id")if id == 0 {c.o.Insert(&post)} else {post.Id = idc.o.Update(&post)}
}

🎯 調試目標

我們要做的事情是:

? 在 Goland 中設置斷點 → 查看 c(即控制器對象)中所有前端傳入的字段值(無論是 URL、表單、還是 JSON)


📌 推薦斷點位置

將斷點設置在如下任意一行:

post.Title = c.GetString("title") // ? 推薦這里打斷點

此時,表單數據已被解析,前端傳入的數據可通過調試面板查看。


🕵??♀? Goland 中查看參數的方法

斷點暫停后,在 Goland 的 Variables 面板中展開如下結構:

1. 查看表單字段 / URL 參數(適用于 form 表單提交)

c.Ctx.Request.Form      // 查看所有 form 字段(map[string][]string)
c.Ctx.Input.ParamsStore // 動態路由中的參數,例如 :id

2. 查看 JSON 提交的原始 body(適用于 axios/postman 提交 JSON)

c.Ctx.Input.RequestBody // []byte,內容為原始 JSON 字符串

3. 快捷調試(Evaluate Expression)

點擊右鍵 → Evaluate Expression 或快捷鍵 Alt + F8,輸入:

c.GetString("title")
c.GetInt("id")

即可查看對應字段值。


🧪 示例截圖(調試界面)

你應該能在 Variables 面板看到如下結構:

? c? Ctx? Request? Formtitle       → "Go 調試技巧"content     → "Goland 調試查看表單參數方法"id          → "0"

如果使用 JSON 方式提交,可以在:

c.Ctx.Input.RequestBody → {"title":"xxx","content":"yyy"}

🛠 提示:打印所有參數調試用

在調試階段,也可以添加一段打印日志:

fmt.Println("Form參數:", c.Ctx.Request.Form)
fmt.Println("動態路由參數:", c.Ctx.Input.Params())
fmt.Println("原始Body:", string(c.Ctx.Input.RequestBody))

輸出示例:

Form參數:map[title:[測試標題] content:[測試正文] id:[0]]
動態路由參數:map[id:0]
原始Body:{"title":"測試標題","content":"測試正文"}

? 總結

查看方式數據類型場景
c.Ctx.Request.Formmap[string][]string普通表單或 URL 查詢參數
c.Ctx.Input.Params()map[string]string動態路由(如 /edit/:id
c.Ctx.Input.RequestBody[]byte原始 JSON 請求體
c.GetString("xxx")string單個字段調試(Evaluate 表達式)

📘 延伸閱讀

  • Beego 控制器文檔
  • Goland 調試官方指南
  • pprof 監控 Go 內存使用

📌 最后

通過合理使用 Goland 斷點和查看控制器中 c 的變量結構,你可以快速定位字段獲取錯誤、前端數據缺失、類型轉換失敗等問題,是提升開發效率的重要技巧。

如果你覺得本文對你有幫助,歡迎點贊收藏轉發~


在IDE 中 斷點到任意 c 位置,使用求值表達式即可 求出表單中所有提交的值
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/91298.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/91298.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/91298.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

sqli-labs:Less-2關卡詳細解析

1. 思路🚀 本關的SQL語句為: $sql"SELECT * FROM users WHERE id$id LIMIT 0,1";注入類型:數值型提示:參數id無需考慮閉合問題,相對簡單 2. 手工注入步驟🎯 我的地址欄是:http://l…

TRAE 軟件使用攻略

摘要TRAE 是一款集成了人工智能技術的開發工具,旨在為開發者提供高效、智能的編程體驗。它包括三個主要組件:TRAE IDE、TRAE SOLO 和 TRAE 插件。無論是編程新手還是經驗豐富的開發者,都可以通過 TRAE 提高工作效率和代碼質量。標題一&#x…

將開發的軟件安裝到手機:環境配置、android studio設置、命令行操作

將開發的軟件安裝到手機環境配置android studio4.1.2安裝命令行操作環境配置 注意:所有的工具的版本都需要根據當下自己的軟件需要的。 Node:14.16.0 (如果安裝了npm,可以使用npm進行當前使用node版本的更改) &#x…

Jmeter 命令行壓測、HTML 報告、Jenkins 配置目錄

Jmeter 命令行壓測 & 生成 HTML 測試報告 通常 Jmeter 的 GUI 模式僅用于調試,在實際的壓測項目中,為了讓壓測機有更好的性能,多用 Jmeter 命令行來進行壓測。 官方:Jmeter 最佳實踐 同時,JMeter 也支持生成 HT…

記錄幾個SystemVerilog的語法——覆蓋率

1. 前言 通常說的覆蓋率有兩種類型:code coverage(代碼覆蓋率)和functional coverage(功能覆蓋率)。代碼覆蓋率是使用EDA工具自動從設計代碼里提取出來的,功能覆蓋率是用戶指定的,用于衡量測試設計意圖和功能進展。因此,功能覆蓋…

深度學習基礎—2

第一章、參數初始化 我們在構建網絡之后,網絡中的參數是需要初始化的。我們需要初始化的參數主要有權重和偏置,偏重一般初始化為 0 即可,而對權重的初始化則會更加重要,我們介紹在 PyTorch 中為神經網絡進行初始化的方法。 1.1 常…

PyTorch深度學習快速入門學習總結(三)

現有網絡模型的使用與調整 VGG — Torchvision 0.22 documentation VGG 模型是由牛津大學牛津大學(Oxford University)的 Visual Geometry Group 于 2014 年提出的卷積神經網絡模型,在 ImageNet 圖像分類挑戰賽中表現優異,以其簡…

是否需要買一個fpga開發板?

糾結要不要買個 FPGA 開發板?真心建議搞一塊,尤其是想在數字電路、嵌入式領域扎根的同學,這玩意兒可不是可有可無的擺設。入門級的選擇不少,全新的像 Cyclone IV、Artix 7 系列,幾百塊就能拿下,要是去二手平…

【模型細節】MHSA:多頭自注意力 (Multi-head Self Attention) 詳細解釋,使用 PyTorch代碼示例說明

MHSA:使用 PyTorch 實現的多頭自注意力 (Multi-head Self Attention) 代碼示例,包含詳細注釋說明:線性投影 通過三個線性層分別生成查詢(Q)、鍵(K)、值(V)矩陣: QWq?x,KWk?x,VWv?xQ W_qx, \quad K W_kx, \quad V W_vxQWq??x,KWk??x…

PGSQL運維優化:提升vacuum執行時間觀測能力

本文是 IvorySQL 2025 生態大會暨 PostgreSQL 高峰論壇上的演講內容,作者:NKYoung。 6 月底濟南召開的 HOW2025 IvorySQL 生態大會上,我在內核論壇分享了“提升 vacuum 時間觀測能力”的主題,提出了新增統計信息的方法&#xff0c…

神奇的數據跳變

目的 上周遇上了一個非常奇怪的問題,就是軟件的數據在跳變,本來數據應該是158吧,數據一會變成10,一會又變成158,數據在不斷地跳變,那是怎么回事?? 這個問題非常非常的神奇,讓人感覺太不可思議了。 這是這段時間,我遇上的最神奇的事了,沒有之一,最神奇的事,下面…

【跨國數倉遷移最佳實踐3】資源消耗減少50%!解析跨國數倉遷移至MaxCompute背后的性能優化技術

本系列文章將圍繞東南亞頭部科技集團的真實遷移歷程展開,逐步拆解 BigQuery 遷移至 MaxCompute 過程中的關鍵挑戰與技術創新。本篇為第3篇,解析跨國數倉遷移背后的性能優化技術。注:客戶背景為東南亞頭部科技集團,文中用 GoTerra …

【MySQL集群架構與實踐3】使用Dcoker實現讀寫分離

目錄 一. 在Docker中安裝ShardingSphere 二 實踐:讀寫分離 2.1 應用場景 2.2 架構圖 2.3 服務器規劃 2.4 啟動數據庫服務器 2.5. 配置讀寫分離 2.6 日志配置 2.7 重啟ShardingSphere 2.8 測試 2.9. 負載均衡 2.9.1. 隨機負載均衡算法示例 2.9.2. 輪詢負…

maven的阿里云鏡像地址

在 Maven 中配置阿里云鏡像可以加速依賴包的下載,尤其是國內環境下效果明顯。以下是阿里云 Maven 鏡像的配置方式: 配置步驟:找到 Maven 的配置文件 settings.xml 全局配置:位于 Maven 安裝目錄的 conf/settings.xml用戶級配置&am…

大語言模型信息抽取系統解析

這段代碼實現了一個基于大語言模型的信息抽取系統,能夠從金融和新聞類文本中提取結構化信息。下面我將詳細解析整個代碼的結構和功能。1. 代碼整體結構代碼主要分為以下幾個部分:模式定義:定義不同領域(金融、新聞)需要抽取的實體類型示例數據…

Next實習項目總結串聯講解(一)

下面是一些 Next.js 前端面試中常見且具深度的問題,按照邏輯模塊整理,同時提供示范回答建議,便于你條理清晰地展示理解與實踐經驗。 ? 面試講述結構建議 先講 Next.js 是什么,它為什么比 React 更高級。(支持 SSR/SSG/ISR,提升S…

React開發依賴分析

1. React小案例: 在界面顯示一個文本:Hello World點擊按鈕后,文本改為為:Hello React 2. React開發依賴 2.1. 開發React必須依賴三個庫: 2.1.1. react: 包含react所必須的核心代碼2.1.2. react-dom: react渲染在不同平…

工具(一)Cursor

目錄 一、介紹 二、如何打開文件 1、從idea跳轉文件 2、單獨打開項目 三、常見使用 1、Chat 窗口 Ask 對話模式 1.1、使用技巧 1.2 發送和使用 codebase 發送區別 1.3、問題快速修復 2、Chat 窗口 Agent 對話模式 2.1、agent模式功能 2.2、Chat 窗口回滾&撤銷 2.3…

Prompt編寫規范指引

1、📖 引言 隨著人工智能生成內容(AIGC)技術的快速發展,越來越多的開發者開始利用AIGC工具來輔助代碼編寫。然而,如何編寫有效的提示詞(Prompt)以引導AIGC生成高質量的代碼,成為了許…