最近接触了Hyperledger Fabric,官网给的app并没有界面,不过有一个单页版的项目,在此基础上做出了一个简易的食品溯源项目
github项目地址
功能:
- 发布食品
- 添加配料信息
- 中转食品
- 查询食品信息
- 查询配料信息
- 查询中转信息(只可以溯源整个食品信息,不能溯源配料信息)
前言
本篇文章只会对我认为比较重要地部分进行大致地讲解,不会讲解细节,如果有什么疑惑的地方请在评论区进行评论,会根据评论情况进行下一篇文章的编写项目架构
前端使用AngularJs来进行页面渲染,后台使用Node.js返回Json数据,数据存储在Hyperledger Fabric提供的数据库启动脚本详解
source-app/server.jsconst middlewares = [
express.static(path.join(__dirname, 'public')),//静态文件
bodyParser.urlencoded({
extended: true }),//解析POST所传参数
cookieParser(),//使用Cookie来进行Flash文字演示
session({
secret: 'super-secret-key',
key: 'super-secret-cookie',
resave: false,
saveUninitialized: false,
cookie: {
maxAge: 60000}
}),
flash()
]
app.use(middlewares)//激活中间件
app.use(express.static(path.join(__dirname, 'views')));//使用模板
app.set('view engine', 'ejs');//配置模板引擎
require('./routes.js')(app);
URL分为三个部分
Part 1
获取HTML source-app/routes.jsapp.get('/', function(req, res) {
tuna.index(req, res);
});
...
Part 2
表单表单提交流程
填写表单->POST到特定的URL->处理表单信息->重定向到首页
表单的HTML代码编写
source-app/views/form.ejs
<form method="post" action="/re_form" novalidate>
<div class="section">食品信息</div>
<div class="inner-wrap">
<label>食品编号 <input type="text" name="field1" /></label>
<label>食品名称 <input type="text" name="field1" /></label>
<label>食品规格 <input type="text" name="field1" /></label>
<label>食品生产日期 <input type="text" name="field1" /></label>