nodejs 使用protobuf

nodejs 使用protobuf

  • 在 hyperledger-fabric中是传输协议使用的是protobuf,在基于该项目有一个项目使用node。则需要使用nodejs的protobuf ,本文使用的是google-protobuf。
    google_protobuf_js
  • 首先新建一个测试项目,node_proto文件夹
  • 在该文件夹下,安装google-protobuf。
    • 安装protoc。
    • 首先查看 google-protobuf的版本 npm view google-protobuf versions
    • 在node_proto下新建package.jsonnodejs 使用protobuf_第1张图片
    • 我们用3.6.0版本。在node_proto下新建package.json,写入:
         {
              "dependencies": {
                  "google-protobuf": "3.6.0"
              }
          }
    
    
  • 然后npm Install

  • 新建proto文件proto_exam.proto,写入

    syntax = "proto3";
    package ccprotos;
     message requestModel{
     	string msg = 10;
     	string code = 11;
     }
    
  • 根据google_protobuf_js的文档,使用CommonJS imports。protoc --js_out=import_style=commonjs,binary:. .\proto_exam.proto,目录下会生成proto_exam_pb.js

  • 之后新建main.js ,测试proto 运行 node main.js。

     var basepb = require('./proto_exam_pb');
     var message = new basepb.requestModel();
     message.setMsg("hello"); 
     message.setCode("200");
     var bytes = message.serializeBinary(); 
     console.log(bytes);
     var message2 = basepb.requestModel.deserializeBinary(bytes);
     console.log(message2);
    

  • proto_exam.proto会生成proto_exam_pb.js
  • basepb.requestModel 中requestModel对应proto文件的message的类名

你可能感兴趣的:(node)