最近用ios开发一个简单的app,先写一个简单的接口,简单人做简单事。之前看过java,被各种框架绕得不行,后来看到go语言,正如谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。非常简单,好了不废话了。整理下这2天的内容。
服务器是用阿里云的ubuntu操作系统。
先安装go语言开发环境,远程登录,输入命令行:
sudo apt-get install golang-go
安装好后,配置下go的环境变量。环境变量可以让你在不指定目录的情况下,编译,运行各项目。非常方便~
编译~/.bashrc 文件
vi ~/.bashrc
然后按 i 插入,滚动到最后一行,添加如下代码
export GOPATH=$HOME/home/go_app
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
添加后如下图:
按esc键盘,输入:wq 保存并且退出。
说明下,$HOME 是当前的用户目录,我用登录的时候是在root目录下,后面的home/go_app是我自己建的,随便取的名字~
让配置直接生效,命令行输入
source ./bashrc
查看设置好没,命令行输入
go env
看到如下
看到刚才配置的2个都在上面了。
然后接下来我们来创建我们自己的项目,go语言的工作环境配置如下
root@huangjianyu:~/home# tree
.
`-- go_app
|-- bin //可执行文件目录
| `-- TQBProject
`-- src //模块,项目目录
|-- testproject
| `-- hello.go
`-- TQBProject
`-- helloserver.go
这次我是建了一个TQBProject的项目,为啥叫这个名称,我喜欢~
在上面的环境变量下,我们自己建src跟bin目录,然后在src下建立我们自己的项目名称TQBProject
cd .../go_app/src
mkdir TQBProject
cd TQBProject
然后开始建立我们的第一个go文件
vi helloserver.go
内容如下
package main
import (
"fmt"
"net/http"
"strings"
"log"
)
func sayhelloName(w http.ResponseWriter, r *http.Request) {
r.ParseForm() //解析参数,默认是不会解析的
fmt.Println(r.Form) //这些信息是输出到服务器端的打印信息
fmt.Println("path", r.URL.Path) //打印地址
fmt.Println("scheme", r.URL.Scheme)
fmt.Println(r.Form["url_long"])
for k, v := range r.Form { //遍历所有参数
fmt.Println("key:", k)
fmt.Println("val:", strings.Join(v, ""))
}
fmt.Fprintf(w, "我是黄煎鱼~~~~!") //这个写入到w的是输出到客户端的
}
func main() {
dbTest()
http.HandleFunc("/", sayhelloName) //设置访问的路由
// http.HandleFunc("/other", otherUrl) //设置访问的路由
err := http.ListenAndServe(":8090", nil) //设置监听的端口
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
是不是非常简单?之后就开始编译了。
1.cd到项目指定的目录,然后执行go build
2.也可以在任意目录执行go build 【项目模块名】
go build TQBProject
//执行
./TQBProject
然后在浏览器访问
嗯大功告成~后面我们将会在supervisor来托管我们的进程。
参考1
https://www.digitalocean.com/community/tutorials/how-to-install-go-1-6-on-ubuntu-16-04
参考2
https://waylau.com/linux-ubuntu-golang-under-environment-variables/
参考3
https://nanxiao.gitbooks.io/golang-101-hacks/content/posts/go-build-vs-go-install.html
参考4
https://www.kancloud.cn/kancloud/web-application-with-golang/44128