Protobuf之proto js生成

先上我的工作区图,最终的样子

在这里插入图片描述

你新建一个文件夹,在文件夹中打开VSCODE,快捷键Ctrl+Shift+Y,然后在TERMINAL中执行各种命令。

先说下,我已经安装了Node.js

在这里插入图片描述

Before把要用的先记录一遍[IM.MD文件]

npm install -g require(对库文件的引用库)
npm install -g browserify(这个是用来打包成前端使用的js文件)
npm install google-protobuf(protobuf的库文件)
https://github.com/protocolbuffers/protobuf(github地址)
https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protoc-3.6.1-win32.zip
(proto.exe工具,加入path环境变量或者放入system32下)
protoc.exe --js_out=import_style=commonjs,binary:. ZH_IM.proto
(编译proto为js文件,注:syntax在文件中规定第一行)
browserify ZH_IM.js > IMBody.js
(打包成品js)

ZH_IM.proto【文件】

syntax = "proto3";
package zhimpackage;
message ZH_IMMessage {
    string field = 1; // becomes awesomeField
}

ZH_IM.js【文件】

var ZH_IMBody  = require("./ZH_IM_pb");
module.exports = {  
    DataProto: ZH_IMBody  
} 

准备好了就要开始输入命令行了

所有命令在TERMINAL选项卡执行
npm install -g require
npm install -g browserify
npm install google-protobuf
Ok,接下来将下载IM.MD给好连接下载(proto.exe工具,加入path环境变量或者放入system32下)
protoc.exe --js_out=import_style=commonjs,binary:. ZH_IM.proto
Ok,生成了ZH_IM_pb.js
browserify ZH_IM.js > IMBody.js
Ok,IMBody.js新鲜出炉了【最终生成protobuf js文件】
开始用一下

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>竹</title>
    <script src="IMBody.js"></script>
</head>  
<body>  
</body>  
<script>  
    var message = new proto.zhimpackage.ZH_IMMessage();
    message.setField("一个人");
    var bytes = message.serializeBinary();
    console.log(bytes);
    var data = proto.zhimpackage.ZH_IMMessage.deserializeBinary(bytes);
    console.log(data);
    console.log(data.getField());
</script>  
</html> 

看图

在这里插入图片描述

我不得不提几个注意的点

  1. protoc.exe这个上文给了连接,需要下载并环境配置【本人将protoc.exe直接扔System32文件夹下了】ps:本人还双击了这个文件,咳咳,以为像jdk一样要安装再去配置
  2. syntax = “proto3”;在*.proto文件中需第一行【proto.exe工具解析规则如此】
  3. proto生成文件末尾为proto文件名+_pb【proto.exe工具生成规则如此,OR其它方式】
  4. 页面的Set和Get属性操作,如果你用过lombok工具,我想你能明白。
  5. 说一千道一万,来一遍吧。
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用protobufproto文件转换为js文件的过程可以通过以下步骤完成: 1. 首先,确保已经安装了npm和protobuf的相关库文件。可以使用以下命令进行安装: ``` npm install -g require npm install -g browserify npm install google-protobuf ``` 2. 下载proto.exe工具,并将其加入系统的环境变量中,或者将其放置在system32目录下。可以从以下链接中下载proto.exe工具: ``` https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protoc-3.6.1-win32.zip ``` 3. 创建一个.proto文件,并在文件的第一行添加语法声明,例如: ``` syntax = "proto3"; package zhimpackage; message ZH_IMMessage { string field = 1; } ``` 4. 在命令行中运行以下命令,将.proto文件编译成js文件: ``` protoc.exe --js_out=import_style=commonjs,binary:. ZH_IM.proto ``` 5. 使用browserify工具将生成js文件打包成一个文件。可以使用以下命令: ``` browserify ZH_IM.js > IMBody.js ``` 6. 现在,你可以将生成的IMBody.js文件用于前端页面了。在HTML文件中,引入IMBody.js文件: ```html <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>竹</title> <script src="IMBody.js"></script> </head> <body> </body> <script> var message = new proto.zhimpackage.ZH_IMMessage(); message.setField("一个人"); var bytes = message.serializeBinary(); console.log(bytes); var data = proto.zhimpackage.ZH_IMMessage.deserializeBinary(bytes); console.log(data); console.log(data.getField()); </script> </html> ``` 因此,以上步骤可以将protobufproto文件转换为js文件,并在前端页面中使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Protobufproto js生成](https://blog.csdn.net/u010138825/article/details/85245995)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [javascript – protobuf.jsproto文件转换为JSON描述符,重复丢失](https://blog.csdn.net/weixin_29790897/article/details/115905577)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值