我是靠谱客的博主 顺心黑米,这篇文章主要介绍Golang+Nodejs前后端开发分离示例,现在分享给大家,希望可以做个参考。

一直想看看前后端分离是什么样的感觉,所以就试试看了,因为java感觉有点麻烦,就用了go语言来代替后端。
原理:
当浏览器请求访问数据时将数据提交到nodejs写的服务器中,nodejs将数据解析处理后发送给Golang写的后台服务器(请求协议可自定义),Golang写的后台服务器主要是数据库方面操作,操作完成后将数据发送给nodejs服务器,然后nodejs服务器将数据或页面渲染出来。

0.准备工作

1.Go语言开发环境(我go语言的编辑器是IntelliJ IDEA)
2.nodejs开发环境(我nodejs的编辑器是vs code)
3.分别安装 golang和nodejs版hprose插件

资料参考:
hprose官网
Hprose for Golang 用户手册
Hprose for Node.js 用户手册
koajs官网
koa中文文档
koa官网示例

1.后台服务器编写

代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package main import ( "github.com/hprose/hprose-golang/rpc"//<===hprose "fmt" "database/sql" _ "github.com/go-sql-driver/mysql"//<===mysql驱动 "log" ) func checkErr(err error) { if err != nil { panic(err) } } func mysqlTestConnect(str string) string{//数据库查询 fmt.Print(str) db, err := sql.Open("mysql", "root:换成你数据库的密码@tcp(localhost:3306)/test") if err != nil { log.Fatalf("Open database error: %sn", err) } defer db.Close() err = db.Ping() checkErr(err) rows, err := db.Query("SELECT * FROM t_test") checkErr(err) var tmp string="" for rows.Next() { var id int var name string rows.Columns() err = rows.Scan(&id, &name) checkErr(err) tmp=tmp+"id:"+string(id)+" name:"+name+"<br/>" } return tmp } func main(){ server := rpc.NewTCPServer("tcp4://0.0.0.0:10010/")//创建服务具体 server.AddFunction("客户端调用函数名", mysqlTestConnect)//添加访问函数 server.Start()//启动 }

2.前台服务器编写

代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const koa = require('koa');//这里以koa 框架为例 const app = new koa(); var hprose = require("hprose");//hprose var client = hprose.Client.create("tcp4://127.0.0.1:10010/", ['客户端调用函数名']);//创建客户端连接 app.use(function* () { var dt= yield new Promise(function (resolve) { client.客户端调用函数名("请求参数", function (result) { resolve(result); }) }); this.type = 'text/html;charset=utf-8'; this.body = dt; }); app.listen(3000);

3.效果

浏览器访问127.0.0.1:3000地址


img_c731d34e4c2369f599b73b56ea537bda.jpe
效果

最后

以上就是顺心黑米最近收集整理的关于Golang+Nodejs前后端开发分离示例的全部内容,更多相关Golang+Nodejs前后端开发分离示例内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部