npm 包 pb-schema 使用教程

阅读时长 6 分钟读完

什么是 pb-schema?

pb-schema 是一个用于定义和序列化 protocol buffer 消息的 npm 包。它提供了一种简单的方式来定义 protocol buffer 消息结构,并可以将消息序列化为二进制格式。

安装和使用

安装

在命令行中运行下面的命令:

使用

定义消息

我们从定义一个简单的消息开始。打开一个新的文件 example.proto,然后添加以下内容:

在这个文件中我们定义了一个 Person 类型,它包含了四个字段:nameageworkinghobbies。其中 repeated 表示这是一个可以包含多个值的字段。

生成 JavaScript 代码

使用 pb-schema,我们可以轻松将刚刚定义的消息转换为相应的 JavaScript 代码。运行以下命令:

这将根据定义的 example.proto 文件生成以下文件:

序列化和反序列化消息

在 JavaScript 中,我们可以使用以下代码序列化和反序列化 Person 消息:

-- -------------------- ---- -------
----- -------- - ---------------------
----- - ------ - - -----------------------------

-- ------ ------- --
----- ------ - ---------------
  ----- -------
  ---- ---
  -------- -----
  -------- ----------- ------------
--

-- - ------- ---------
----- ------ - ------------------------------

-- -------------- ------- --
----- ------------- - ---------------------

-- ---- ------- --
--------------------------

运行以上代码,即可得到如下输出:

深入了解 pb-schema

定义字段规则

在 pb-schema 中,我们可以定义以下四种消息字段的规则:

  • required:必须存在,且不能为空。
  • optional:可选,可以为空。
  • repeated:可以拥有多个值。
  • map:将一个值映射到另一个值。

example.proto 文件中,我们使用的是 requiredoptionalrepeated 规则。如果我们想要定义一个 map 类型的字段,可以这样做:

这定义了一个 Dictionary 消息类型,包含一个 words_counts 字段,它是一个从字符串到整数的映射。

使用嵌套消息

我们可以使用嵌套消息来定义更复杂的类型。例如,我们可以定义一个新的 Address 类型,然后将其嵌套在 Person 中:

-- -------------------- ---- -------
------ - ---------

-- - ------ ----- -------
------- ------ -
  ------ ---- - --
  ----- --- - --
  ---- ------- - --
  -------- ------ ------- - --
  -- - ------ --- -------
  ------- ------- -
    ------ ------ - --
    ------ ---- - --
    ------ ----- - --
    ------ ------- - --
    ----- --- - --
  -
  ------- ------- - --
-

在JavaScript中,我们可以如下使用嵌套消息:

-- -------------------- ---- -------
----- -------- - ---------------------
----- - ------ - - -----------------------------

-- ------ ------- --
----- ------ - ---------------
  ----- -------
  ---- ---
  -------- -----
  -------- ----------- -------------
  -------- -
    ------- ------ --------
    ----- ---------
    ------ ---
    -------- ----------
    ---- ------
  -
--

-- - ------- ---------
----- ------ - ------------------------------

-- -------------- ------- --
----- ------------- - ---------------------

-- ---- ------- --
--------------------------

自定义 options

在 pb-schema 中,我们可以自定义消息和字段的 options。options 可以扩展 protocol buffer 消息的语义。

首先定义一个 options 配置在 example.proto 文件中:

-- -------------------- ---- -------
------ - ---------

------ -----------------------------------

------- ------ -
  ------ ---- - - -------------------------- - ------------
  ----- --- - --
  ---- ------- - --
  -------- ------ ------- - --
-

然后,我们可以使用 build() 方法在 JavaScript 中访问自定义 option:

总结

pb-schema 是一个用于定义和序列化 protocol buffer 消息的 npm 包。我们可以使用它来定义消息结构,并将消息序列化为二进制格式。在这篇文章中,我们学习了 pb-schema 的基本语法、如何使用嵌套消息并定义字段规则。我们还介绍了如何自定义 options 扩展协议缓冲区消息的语义。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055d2d81e8991b448dae59

纠错
反馈