第一个gin程序

news2024/11/24 17:55:06

一、下载并安装gin

go get -u github.com/gin-gonic/gin

二、第一个gin程序

package main

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

func sayHello(c *gin.Context) {
	// 返回给客户端一个JSON格式的数据,其中HTTP状态码为200,表示处理成功
	c.JSON(200, gin.H{
		"message": "Hello golang!",
	})
}

func main() {
	// 创建默认的路由引擎,以便在收到特定的HTTP请求时,能够执行特定的函数
	r := gin.Default()

	// 往路由器添加URL地址,URL是HTTP请求的一部分
	r.GET("/hello", sayHello)

	// 启动HTTP服务,如果什么都没写,就默认在0.0.0.0:8080启动服务
	// 也可以写成r.Run("0.0.0.0:9999")
	r.Run(":9999")
}

1. 路由引擎是什么?

路由引擎是Web框架中的核心组件之一,它用于接收HTTP请求并将其路由到相应的处理程序。在Web应用程序中,路由引擎通常会根据请求的URL路径、HTTP方法、请求头等信息来匹配对应的路由规则,然后将请求发送到匹配的处理程序中。路由引擎的作用是将HTTP请求与处理程序解耦,使得Web应用程序可以更加灵活地处理不同的请求。

在Gin框架中,路由引擎是通过gin.Engine结构体实现的,默认情况下使用gin.Default()方法创建一个默认的路由引擎。在创建路由引擎之后,可以使用GETPOSTPUT等方法向路由引擎中添加路由规则,并将特定的HTTP请求路由到相应的处理程序中。

2. 为什么处理函数(Handler Function)的参数都需要gin.Context

因为gin.Context里面包含了请求的所有信息,例如:HTTP请求头、请求体、请求参数、响应头等。处理函数通过操作gin.Context对象来获取请求参数、设置响应头、返回响应结果等。


三、在浏览器中打开

在这里插入图片描述


四、遇到的问题以及解决

page 404 NOT Found Error

我用的是9090的端口,不知道为什么,一直报这个错误,我也有想过重新开一个项目文件试试看,说不定是我原来的这个项目文件哪里的配置出了问题,太难找了,就不想找了。

结果,重新开了一个项目,9090端口号还是不能够正常使用。

后来发现,这个端口号被我的电脑里面的其他进程给占用了,只要将占用这端口号的进程关掉就好了。

在这里插入图片描述

如果你想查看9090端口被哪个进程占用了,可以使用以下命令:

  • Windows系统:

    netstat -ano | findstr :9090
    

    这个命令会列出所有使用了9090端口的进程,其中包括进程的PID(Process ID)。你可以根据PID在任务管理器中查找对应的进程。

  • Linux或macOS系统:

    sudo lsof -i:9090
    

    这个命令会列出所有使用了9090端口的进程,其中包括进程的PID和进程名。你可以根据PID在终端中使用kill命令杀死对应的进程。

如果你想要在命令行中关闭占用9090端口的进程,可以使用以下命令:

  • Windows系统:

    taskkill /F /PID <PID>
    

    其中是进程的PID。

  • Linux或macOS系统:

    sudo kill <PID>
    

    其中是进程的PID。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/539527.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

成功的产品经理,应该了解一定的开发知识

产品经理在互联网产品开发中扮演着协调和推动的重要角色。然而&#xff0c;由于产品经理没有直接的实际权力&#xff0c;与开发团队合作时可能会遇到各种挑战。当你给开发人员分配任务时&#xff0c;他们可能会找各种借口推脱工作。 在项目开发中&#xff0c;所有成员必须共同…

【C++】详解STL中的list及其与vector的比较

目录 一、list的介绍及其使用1、list的介绍2、list的使用2.1 list的构造2.2 list iterator的使用3、list的元素访问接口4、list的调节器6、list的迭代器失效 二、list的模拟实现及反向迭代器1、模拟实现list2、list的反向迭代器 三、list和vector的比较 一、list的介绍及其使用…

142. 环形链表 II Python

文章目录 一、题目描述示例 1示例 2示例 3 二、代码三、解题思路 一、题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#x…

bug记录:遇到的tinycudann编译的N种错误

1. 编译成功&#xff0c;但是import tinycudann报错找不到DLL 编译成功&#xff0c;但是import tinycudann的时候&#xff0c;报错&#xff1a; 开始打断点&#xff0c;搜索电脑文件&#xff0c;发现_75_c.py应该是存在的&#xff0c;但就是读不到。 发现其所在的文件夹名称…

自定义组件间通信-2

目录 一、 父子组件间通信的3种方式 二、属性绑定&#xff0c;父-> 子 三、事件绑定&#xff0c;子-> 父 四、获取组件实例 一、 父子组件间通信的3种方式 属性绑定&#xff1a;用于父组件向子组件的指定属性设置设置数据&#xff0c;仅能设置JSON兼容的数据事件绑定&…

三分钟挖掘快速软件开发框架提高办公效率的秘诀

在科技日新月异的当今社会&#xff0c;学会利用快速软件开发框架&#xff0c;可以给企业带来更大的便利和市场价值。因为它拥有可视化设计、灵活简便、易操作、易上手等优势特点&#xff0c;在助推企业实现数字化转型的过程中有着举足轻重的作用。那么&#xff0c;快速软件开发…

自媒体品牌宣传策略注意哪些,是怎么种草的

众所周知&#xff0c;小红书平台有着极其强大的种草能力。不论新品牌孵化&#xff0c;还是大品牌扩张&#xff0c;都会将目光投注到这里&#xff0c;那么小红书的品牌宣传策略究竟是怎样的呢。 一、聚焦种草能力 前面已经提到了&#xff0c;小红书平台是一个以“种草”为特色的…

在 Python 中执行逐元素加法

文章目录 Python 中的逐元素加法在 Python 中使用 zip() 函数执行逐元素加法在 Python 中使用 map() 函数执行逐元素加法在 Python 中使用 NumPy 执行逐元素加法 我们将通过示例介绍在 Python 中按元素添加两个列表的不同方法。 Python 中的逐元素加法 在 Python 中使用列表时…

考情分析调研

文章目录 一、爬虫1、定向爬虫2、规律3、爬取策略4、整页抓取5、爬取方案5.1 Scrapy5.2 BeautifulSoup 二、文本提取三、问题四、数据源建模调研 一、爬虫 1、定向爬虫 定向爬虫可行性太低&#xff0c;因为网站可能发生改版、且网站类型较多。 2、规律 考情分析大多是找到相…

自定义组件的基本使用-1

目录 一、组件的引用方式分为&#xff1a; 局部引用和全局引用 二、组件和页面的区别&#xff1a; 三、组件样式隔离 四、data和properties的区别&#xff1a; 五、自定义组件-数据监听器 六、纯数据字段 七、组件的生命周期 八、插槽 一、组件的引用方式分为&#xff…

国产仪器 4945B/4945C 无线电通信综合测试仪

4945系列无线电通信综合测试仪是多功能、便携式无线电综合测试类仪器&#xff0c;基于软件无线电架构&#xff0c;集成了跳频信号发生与分析、矢量信号发生与解调分析、模拟调制信号发生与解调分析、音频信号发生与分析、音频示波器、自动测试等功能&#xff0c;它可完成无线通…

在线搭建其企业帮助中心的策略有什么?

在线搭建企业帮助中心是一个重要的策略&#xff0c;可以帮助企业更好地管理和共享知识&#xff0c;提高员工的工作效率和生产力&#xff0c;提升客户满意度和忠诚度。 探讨在线搭建企业帮助中心的策略&#xff1a; 一、确定帮助中心的定位和目标 在搭建企业帮助中心之前&…

大脑神经系统

阈值又叫临界值&#xff0c;是指刺激⽣物体时&#xff0c;释放某种反应所需的最⼩刺激强度。 突触神经元之间&#xff0c;或神经元与细胞、腺体之间通信的特异性接头。 注意⼒系统是⼀种散布的神经元连接系统&#xff0c;它将控制觉 醒、动机、奖励、执⾏功能和运动的各个区域…

matplotlib笔记:xkcd 将代码变成手绘风格

1 介绍 matplotlib.pyplot.xkcd(scale1, length100, randomness2) scale相对于不使用xkcd的风格图&#xff0c;褶皱的幅度length褶皱长度randomness褶皱的随机性 2 举例 2.0 不使用xkcd import matplotlib.pyplot as plt import numpy as np xnp.random.randint(0,100,10…

在esp32(esp8266) 提供软字库显示中文的解决方案

本方案已经开源到了 https://github.com/StarCompute/tftziku &#xff0c;详细内容请访问Github. 本方案在esp32 下经过测试在tft屏幕上可以正常输出文字&#xff0c;也就是说经过了验证。 目录 说明 缘起 系统结构 软字库的创建 软字库包含的内容&#xff1a; 软字库的…

用 Android Studio 打包 uni-app 的安卓apk;手把手教程、巨详细避坑

Uni-app 离线打包 apk 1. Android Studio 下载 Android Studio官网 2. HBuilderX下载 HBuilderX下载 3. App离线SDK下载 Android 离线SDK - 正式版 下载后解压文件&#xff0c;将 HBuilder-Integrate-AS 重命名 build-template 并拷贝到一个专门打包用的文件夹下作为打包…

DETR类环境快速搭建

DINO下载地址&#xff1a; git clone https://github.com/IDEA-Research/DINO.gitconda create -n detr python3.8 -y修改写入权限 sudo chmod aw /home/ubuntu/.conda/激活环境 source activate detr安装pytorch conda install pytorch1.12.1 torchvision0.13.1 torchaudio…

OpenHarmony Docker移植实践

Docker简介 从操作系统诞生之日起&#xff0c;虚拟化技术就不断的演进与发展&#xff0c;结合目前云原生的发展态势&#xff0c;容器无疑是其中的重要一环。 Docker是一个开源的软件项目&#xff0c;可以在Linux操作系统上提供一层额外的抽象&#xff0c;让用户程序部署在一个相…

React面试题汇总 ---1

1.React的严格模式如何使用&#xff0c;有什么用处&#xff1f; React中StrictMode严格模式_react.strictmode_前端精髓的博客-CSDN博客当我们使用 npx create-react-app my-app 创建一个项目的时候。项目中有一段如下所示的代码&#xff1a;ReactDOM.render( <React.Stric…

SCADA数据采集与监控系统在制药生产过程中的应用

01 应用背景 制药行业关乎大众生命健康&#xff0c;在生产过程中各方面都要求遵循质量规范。制药行业虽然是一种流程化行业&#xff0c;但是和石油、化工等流程行业不同&#xff0c;行业特点决定了它的特殊性。根据质量规范要求&#xff0c;制药行业的SCADA需要满足国内GMP、欧…