protobufjs 简单使用

喜夏-厌秋 提交于 2020-02-26 02:28:18

安装 npm 官网

其他使用方法可参考  vue 中使用 protobuf 的过程记录

npm i protobufjs -D

添加两个proto文件

User.proto

syntax = "proto3";
package login;

message PBUser {
    string uid = 1;
    string pwd = 2;
    int64 age = 3;
}

Login.proto

syntax = "proto3";
package login;
import "./User.proto";

message LoginReq {
    PBUser user = 1;
}

message LoginRes {
    int64 code = 1;
}

package.json 添加脚本, 将proto文件导出为js文件

    "proto": "npx pbjs -t json-module -w commonjs -o api/proto/proto.js api/proto/*.proto"

 

引入导出的js

let protoRoot = require("./proto/proto.js");

let loginReqObj = protoRoot.lookup('login').LoginReq.create();
let user = protoRoot.lookup('login').PBUser.create();
user.uid = "root"
user.pwd = '1234'
user.age = 11
loginReqObj.user = user
let loginReqObjBuffer = protoRoot.lookup('login').LoginReq.encode(loginReqObj).finish();
console.log(loginReqObjBuffer)
let loginReqObj2 = protoRoot.lookup('login').LoginReq.decode(loginReqObjBuffer);
console.log(loginReqObj2)
console.log(loginReqObj2.user.uid, loginReqObj2.user.pwd, loginReqObj2.user.age)

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!