文档章节

gopherjs 与 echo 配合

electricface
 electricface
发布于 04/29 17:16
字数 284
阅读 13
收藏 0

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

echo 官网: https://echo.labstack.com

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

package main

import (
	"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"))
}

© 著作权归作者所有

上一篇: gopherjs xhr 学习
下一篇: vecty vstore 学习
electricface

electricface

粉丝 2
博文 37
码字总数 33242
作品 0
武汉
私信 提问
go 前端框架 vecty 学习

gopherjs 是把 go 编译为 js 的工具。vecty 是基于 gopherjs 的一种类似 React 的开发框架。 安装 gopherjs 和 vecty vecty 自带的例子在 example 目录,有 todomvc 和 markdown 编辑器。 简...

electricface
04/30
54
0
GopherJS —— 将 Go 代码编译成 JavaScript

GopherJS 可以将 Go 代码编译成纯 JavaScript 代码。其主要目的是为了让你可以使用 Go 来编写前端代码,这些代码可执行在浏览器上运行。你可以通过这里尝试下 GopherJS: GopherJS Playgroun...

oschina
2014/10/15
77
0
gopherjs xhr 学习

gopherjs 生态里有 XMLHttpRequest 的包装 honnef.co/go/js/xhr 库(项目地址, 文档) XMLHttpReqeust 文档 例子 通过 xhr.NewRequest 创建出 对象,设置响应类型 ResponeType 为 "json",这......

electricface
04/29
13
0
WebAssembly 和 Go语言:对未来的观望

我反对学习 JavaScript 还有前端开发已经不是秘密了。事实上,在 CSS 出现前我就学会了 HTML,不过 JavaScript 是我做 Web 开发好久后的事情了。当看到现代 Web 的发展时,我感到不寒而栗。这...

程序师
2018/08/01
0
0
WebAssembly 和 Go:对未来的观望

我反对学习 JavaScript 还有前端开发已经不是秘密了。事实上,在 CSS 出现前我就学会了 HTML,不过 JavaScript 是我做 Web 开发好久后的事情了。当看到现代 Web 的发展时,我感到不寒而栗。这...

oschina
2018/07/25
4.1K
8

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
6
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
8
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
5
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部