因为我是从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. [源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3)

    [源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3) 目录 [源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3) 0x00 摘要 0x01 回顾 0x0 ...

  2. Solution -「集训队作业 2013」「洛谷 P4841」城市规划

    \(\mathcal{Description}\)   link.   求 \(n\) 个结点的简单无向连通图个数,对 \(1004535809~(479\times2^{21}+1)\) 取模.   ...

  3. 使用 shell 脚本清理内存 buff/cache

    #!/bin/bash printf "\e[0;32m数据写入硬盘中,请稍等\e[0m\n" #写入硬盘,防止数据丢失 sync;sync;sync printf "\ ...

  4. Eclipse插件开发demo

    一.安装 1. 下载安装JDk 2. 下载安装PDE(Plugin-in Development Environment) 访问eclipse官网,点击Download,选择Download Pack ...

  5. python-利用random模块生成测试数据封装方法总结

    1.前言: 在测试中经常有需要用到参数化,我们可以用random模块,faker模块生成测试数据,也可以用到pymysql,此文主要针对random模块生成任意个数的随机整数,随机字符串,随机手机号, ...

  6. 渗透测试之本地文件包含(LFI)

    一.本地文件包含 本地文件包含漏洞指的是包含本地的php文件,而通过PHP文件包含漏洞入侵网站,可以浏览同服务器所有文件,并获得webshell. 看见?page=标志性注入点,提示我们输入?=pag ...

  7. C# 操作字符串注意事项

    下面是常见的一个例子 static void Main(string[] args) { string str = "test"+9; string str2 = "te ...

  8. redis部署以及各种数据类型使用命令等详解

    参考:https://www.cnblogs.com/pyyu/p/9843950.html  redis博客地址 编译安装redis 开始部署 [root@mcw01 ~]$ ls anaconda ...

  9. Pandas:各种错误

    1.输出为CSV文件时,Permission denied 原因可能是: (1).构建DataFrame时没有写index参数 (2).用Dict构建最开始的数据时,value没有写成List的形式, ...

  10. Python:格式化字符串的几种方式

    1.% 'abc%s'%'123' 'abc123' 'abc%s%s'%('123','456') 'abc123456' 当变量v是一个Tuple.List且其中元素数量和字符串中%数量相同时,可 ...