因为我是从java转到go,代码结构跟我之前用java的很像

在这里只浅显的实战运用,没有过多理论讲解

工作环境:IDE:Goland , Go 1.17.7 框架 Gin+Gorm ,前端VUE

这里不过多讲前端,可以到我的github或者gitee拉取

Go的安装配置

在官网下载完,安装后需要配置两个环境变量

一个是GOROOT,也就是Go安装的文件夹,注意不要定位到 /bin里面

还有一个是GOPATH,这个就是存放工作空间的文件夹

建议在工作空间里先创多一个pkg文件夹,里面就会存放下载的库,gin_vue是我的项目

我用的IDE是Goland,所以里面还需要配置,建议将Goland自动配置的Go环境变量删掉,除非你的库想安装在C盘

快捷键 Crtl+shift+s 进入设置点击GOPATH配置工作环境

安装框架

在项目文件夹路径里输入 cmd 调出黑窗口输入,或者在Goland下面点击Triminal

go get github.com/gin-gonic/gin //后端框架
go get github.com/jinzhu/gorm //数据库框架

项目开始

结构

首先是确定好项目结构,因为之前用过java写后端所以就沿用了一些风格

其中bin是放go编译后的文件的,src就是代码存放的文件。config就是存放一些配置信息的文件

controller是对数据库各个表的操作,一个go文件代表一个表的操作

dbUtils是数据库连接初始化的文件

entiy就是存放数据库各个表里面的字段结构

router就是定义后端给前端的接口文件

utils就是工具类

配置文件

config.yml

ip: 127.0.0.1 #ip地址
user: root #数据库用户的名字
pwd: 123456 #这里数据库用户的密码
db_name: gotest #所连接数据库的名字
db_port: 3306 #连接数据库的端口号

数据库连接

这是我gotest数据库的一个表user的字段,下面基本就是对这个表的操作

var AdminT, UserT, Db *gorm.DB

func Init() {
var c ymlConfig
var dbConfig string
config := c.getYml()
//"root:root123@tcp(127.0.0.1:3306)/test_gorm?charset=utf8mb4&parseTime=True&loc=Local"
dbConfig = config.User + ":" + config.Pwd + "@tcp(" + config.Ip + ":" + config.Db_port + ")/" + config.Db_name + "?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open("mysql", dbConfig)
if err != nil {
panic(err)
} AdminT = db
UserT = db
//绑定数据库表名
UserT.AutoMigrate(&entiy.User{}) }

定义表的结构

我创建了一个表叫做User,struct作为一个映射对象,对应着user里面的字段

对数据库表的操作

这里的c *gin.Context是后端接口传来的信息

ShouldBindJSON就是将结构体传进去,会将前端发送的JSON数据按照结构体进行数据绑定

创建接口

这里就是后端接口的创建,前端访问/user/login 就会访问到这个接口对应的处理函数

初始化

确定后端端口号

拉取项目

目的是vue项目(后端给他配置好的端口号是9292,要是大家改了前面后端的端口号就会通不了),需要提前安装node.js,

https://nodejs.org/en/

一直点击,安装到你指定的文件夹就行了

系统环境 配置 这里的地址是你安装nodejs的地址里面的node_modules

在系统环境变量里双击path 将你的nodejs地址放进去即可

这是我的工程项目,下面放着vue的项目

现在为vue添加构造器 点击画圈地方

按Edit Configuration 进入,点击左上角的+号 找到npm

按照我这里配置一下,基本都是上面涉及到的路径,点击确定

在Goland的命令行中

cd vue
npm install

等安装完就可以点击这里切换前后端运行了

若有其他问题可以在评论区讨论

GO后端开发+VUE实列的更多相关文章

  1. STM32L476RG_中断开发与实列

    本程序的主要功能是实现按键控制灯的亮灭.当灯为灭的状态时按键按下点亮灯,当灯为亮的状态时按键按下熄灭灯,即实现灯的电平翻转操作. 按键扫描是利用 GPIO 下降中断,来监测按键按下动作.并加以消抖操作 ...

  2. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十四 ║ VUE 计划书 & 我的前后端开发简史

    ---新内容开始--- 番外 大家周一好呀,又是元气满满的一个周一呀!感谢大家在周一这个着急改Bug的黄金时期,抽出时间来看我的博文哈哈哈,时间真快,已经到第十四篇博文了,也很顺顺(跌跌)利利 (撞撞 ...

  3. 循序渐进VUE+Element 前端应用开发(30)--- ABP后端和Vue+Element前端结合的分页排序处理

    在很多列表展示数据的场合中,大多数都会需要一个排序的处理,以方便快速查找排序所需的数据,本篇随笔介绍如何结合ABP后端和Vue+Element前端结合的分页排序处理过程. 1.Vue+Element前 ...

  4. web前端开发和后端开发有什么区别?

    web前端分为网页设计师.网页美工.web前端开发工程师 首先网页设计师是对网页的架构.色彩以及网站的整体页面代码负责 网页美工只针对UI这块儿的东西,比如网站是否做的漂亮 web前端开发工程师是负责 ...

  5. .net core webapi 前后端开发分离后的配置和部署

    背景:现在越来越多的企业都采用了在开发上前后端分离,前后端开发上的分离有很多种,那么今天,我来分享一下项目中得的前后端分离. B/S  Saas 项目:(这个项目可以理解成个人中心,当然不止这么点功能 ...

  6. Magento2.X 后端开发简要1

    Megento2.X 后端开发简要 根目录位置 组件的根目录是其文件夹和文件所在的组件的顶级目录.根据您安装的MaMeto开发环境,组件的根目录可以位于两个位置: 1.<Magento inst ...

  7. (译)Windows Azure:移动后端开发的主要更新

    Windows Azure:移动后端开发的主要更新 这周我们给Windows Azure释出了一些很棒的更新,让云上的移动应用开发明显的简单了.这 些新功能包括: 移动服务:定制API支持移动服务:G ...

  8. ABP开发框架前后端开发系列---(3)框架的分层和文件组织

    在前面随笔<ABP开发框架前后端开发系列---(2)框架的初步介绍>中,我介绍了ABP应用框架的项目组织情况,以及项目中领域层各个类代码组织,以便基于数据库应用的简化处理.本篇随笔进一步对 ...

  9. vue04 组件化开发 Vue自动化工具

    5. 组件化开发 5.1 组件[component] 组件(Component)是自定义封装的功能.在前端开发过程中,经常出现多个网页的功能是重复的,而且很多不同的网站之间,也存在同样的功能. 而在网 ...

随机推荐

  1. 10、架构--keepalive、四层负载均衡

    笔记 1.晨考 1.HTTPS的作用,怎么实现的呢? 2.全栈部署HTTPS 只需在代理中部署HTTPS 3.反向代理 BBS 步骤 1.部署WEB机器 2.部署代理 4.如果 LB01 宕机了,怎么 ...

  2. NVDA、争渡读屏语音开放API接口

    什么是读屏软件? 读屏软件是一种专为视力障碍人士设计的,能够辅助视障人士操作计算机的工具,它可以将屏幕上显示的内容用语音朗读出来,这样视障人士就可以正常使用电脑了. 知名的屏幕阅读软件国内有争渡读屏. ...

  3. 轻松理解JS中的面向对象,顺便搞懂prototype和__proto__的原理介绍

    这篇文章主要讲一下JS中面向对象以及 __proto__,ptototype和construcator,这几个概念都是相关的,所以一起讲了. 在讲这个之前我们先来说说类,了解面向对象的朋友应该都知道, ...

  4. 如何在Excel里安装excel插件?

    随着科技的发展,人们对数据分析的要求越来越多, Excel也存在一些问题,长期困扰一线业务用户:首先是性能问题.对于大数据量,Excel处理起来很慢.数据获取的过程麻烦,特别是周期性的数据获取,每次都 ...

  5. 【windows 操作系统】文件保护:文件访问类型和访问控制

    文件保护:文件访问类型和访问控制 为了防止文件共享可能会导致文件被破坏或未经核准的用户修改文件,文件系统必须控制用户对文件的存取,即解决对文件的读.写.执行的许可问题. 为此,必须在文件系统中建立相应 ...

  6. 基于Netty的一个WeoSocket通信服务器与客户端代码(非JS代码)

    基于Netty的一个WeoSocket通信服务器与客户端代码(非JS代码) 咳咳,在这里呢,小轩就不多说什么是WebSocket的,还有呢,小轩为什么不给出JS-Client代码?网上太多代码可以用了 ...

  7. 分布式 PostgreSQL - Citus 架构及概念

    节点 Citus 是一种 PostgreSQL 扩展,它允许数据库服务器(称为节点)在"无共享(shared nothing)"架构中相互协调.这些节点形成一个集群,允许 Post ...

  8. Qt:QDateTime

    0.说明 提供时间日期的表达和相关函数. QDateTime通过日期+时间来构造一个日期时间.它综合了QDate和QTime的所有特性. 它可以通过系统时钟来获取当前DateTime.它还提供了比较时 ...

  9. Scrapy:用cmdline运行爬虫后导致主程序也结束——CrawlerProcesser

    学习自: Scrapy官方文档--CrawlerRunner相关 解决django或者其他线程中调用scrapy报ReactorNotRestartable的错误 - liuxianglong - 博 ...

  10. python opencv识别蓝牌车牌号 之 取出车牌号 (1/3)

    概述 车牌识别是计算机视频图像识别技术在车辆牌照识别中的一种应用,通常来讲如果结合opencv进行车牌识别主要分为四个大步骤,分别为: 图像采集 车牌定位 分割车牌字符 字符识别 当然,如果结合了机器 ...