博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gopherjs 与 echo 配合
阅读量:6626 次
发布时间:2019-06-25

本文共 1072 字,大约阅读时间需要 3 分钟。

hot3.png

gopherjs 是把 go 转换为 js 的工具,echo 是 go 的 web 框架。

echo 官网:

使用 gopherjs serve 在 localhost:8080 开启服务,然后运行下面的 go 代码,它使用 echo 框架在 localhost:1323 开启服务,里面的逻辑是把非 /api 路径的请求都反向代理到 gopherjs 在 8080 端口提供的服务,只有路径为 /api 的请求,跳过代理,由自己处理。这样可以实现在同一个端口(同一个域)下提供 api 接口和 js 等静态文件,而不需要让服务器允许 api 接口的跨域访问。

package mainimport (	"net/http"	"net/url"	"github.com/labstack/echo"	"github.com/labstack/echo/middleware")func main() {	e := echo.New()	// middleware	e.Use(middleware.Logger())	e.Use(middleware.Recover())	e.Use(middleware.Gzip())	e.GET("/api", func(c echo.Context) error {		return c.String(http.StatusOK, "hello world!\n")	})	url1, err := url.Parse("http://localhost:8080")	if err != nil {		e.Logger.Fatal(err)	}	targets := []*middleware.ProxyTarget{		{			URL: url1,		},	}	proxyMid := middleware.ProxyWithConfig(middleware.ProxyConfig{		Balancer: middleware.NewRandomBalancer(targets),		Skipper: func(c echo.Context) bool {			if c.Path() == "/api" {				return true			}			return false		},	})	e.Use(proxyMid)	e.Logger.Fatal(e.Start(":1323"))}

转载于:https://my.oschina.net/u/1248114/blog/3044039

你可能感兴趣的文章
Tech.Ed 2011微软技术大会(三)之课程回顾
查看>>
C++中extern “C”含义深层探索
查看>>
Git常用命令总结
查看>>
服务器监控Cacti
查看>>
Alpha、Beta、RC、GA、RTM、OEM、RVL、EVAL、RTL各个版本的区别
查看>>
hadoop、storm和spark的区别、比较
查看>>
sqlserver2005群集
查看>>
IBM_System_x3650服务器固件升级手顺
查看>>
freemarker判断对象是否为空
查看>>
Iptables
查看>>
awk单行脚本
查看>>
Memcached Server High availability
查看>>
CentOS6.6 部署LAMP系统架构
查看>>
C语言基于GTK+Libvlc实现的简易视频播放器
查看>>
Solr API例子详解
查看>>
软件开发之通病解析
查看>>
Ubuntu下编译安装vim/gvim 8.0
查看>>
python wxPython 5 (框架 wx.Frame)
查看>>
windows server backup 功能备份虚拟机
查看>>
zookeeper 客户端
查看>>