EOS [EOS DAPP 开发] 13 - 使用 Nodejs+Express+Demux 搭建后端

pendingauth · 2019年05月24日 · 74 次阅读

本文转载自币乎,作者松果,原文链接:https://bihu.com/article/1496578787

上一篇文章介绍的DAPP示例,后端是用Nodejs+Express+Demux搭建的,下面来学习它们。

Node.js Express

Express是一个简洁而灵活的node.js Web应用框架,提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。

一个简单的Express示例
mkdir express-app
cd express-app

# 创建一个node项目(一直按回车即可)
npm init

# 安装Express
npm install express --save

然后在项目目录下的src目录下,新建index.js,编写如下代码:

执行命令:

node src/index.js

就可以在localhost:4001看到服务端的输出了:

请求和响应
app.get('/', (req, res) => res.send('Hello World!'));

这句代码表示,当收到客户端的get请求(Request)时,服务端响应(Response)输出字符串'Hello World!'。

路由

路由决定了由谁去响应客户端的请求,包含一个路径和一个特定的HTTP请求方法(GET、POST等),每个路由可以有一个或多个处理函数,这些函数在路由匹配时执行。定义如下:

app.METHOD(PATH, HANDLER)

下面的例子定义了多个路由:

还可以使用express.Router类来创建可安装的模块化路由处理程序,Router实例是完整的中间件和路由系统。

中间件

中间件函数能够访问请求对象(req)、响应对象(res),以及请求/响应循环中的下一个中间件函数。

中间件函数可以执行以下任务:

  • 执行任何代码

  • 对请求和响应对象进行更改

  • 结束请求/响应循环

  • 调用堆栈中的下一个中间件

这段代码定义了一个中间件函数,这个中间件的作用是:服务端每次收到请求时,在控制台打印消息“LOGGED”。

后端代码解读

基本了解了Express,再来看看eosio-project-demux-example的后端代码。

backend/src/index.js的代码如下:

这里有两个新朋友:

  • cors:实现CORS跨域请求的Express中间件

  • socket.io:WebSocket的一个封装组件,可以实现实时双向通信

再来看看创建ActionWatcher的代码:

ActionWatcher的构造函数,需要传入ActionReader和ActionHandler。ActionReader读取提交给nodeos的数据,ActionHandler处理这些数据。

到这里,我们对DAPP后端的架构有了初步的认识,下一篇文章,来详解Demux的原理和使用。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册