npm包 tsbuf-nestjs 使用教程

一、什么是tsbuf-nestjs

tsbuf-nestjs是一个构建于protobuf之上的TypeScript库,它可以让你更便捷地开发Nestjs应用程序。使用tsbuf-nestjs,你可以将protobuf中的定义直接转化为Nestjs的控制器服务层,无需编写繁琐的接口映射代码。从而使得应用程序的开发效率大大提升。

二、如何安装

在使用tsbuf-nestjs之前,你需要先安装它。你可以使用以下命令在你的项目中添加tsbuf-nestjs

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

三、使用示例

下面让我们看一个tsbuf-nestjs的使用示例。以一个购物车服务为例,我们可以先定义购物车服务的protobuf文件,例如:

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

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

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

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

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

如果我们不使用tsbuf-nestjs,那么我们需要手动编写Nestjs的控制器代码,从而将这些protobuf映射为控制器接口。例如:

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

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

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

然而,如果我们使用tsbuf-nestjs,我们就可以将定义好的protobuf直接转化为控制器代码并使用。示例如下:

  • 先定义Nestjs控制器类,并使用注解@TsbufController标记:

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

    上述代码中,我们使用了注解@TsbufController("shopping"),它表示ShoppingCartController控制器类将与protobuf中的shopping包相对应。同时,在ShoppingCartController中,我们定义了两个方法addItemgetCart,这两个方法的参数类型就是protobuf中定义的AddItemRequestAddItemResponseGetCartRequestGetCartResponse

  • 接下来创建Nestjs服务类,并使用注解@TsbufService标记。我们需要引入protobuf中定义的类型,在服务类中定义服务实现方法:

    ------ - ------------ - ---- ---------------
    ------ - --------------- ---------------- --------------- --------------- - ---- -------------------
    
    -------------------------
    ------ ----- ------------------- -
        ------- ------ ----------- ---------------------- - --- ------
    
        ------------ ---------------- --------------- -
            ----- ------ - -----------
            --- -------- - -----------------------
            -- ----------- -
                -------- - ---
                ---------------------- ----------
            -
            -------------------
            ------ - ------- ----------- ------ --------- --
        -
    
        ------------ ---------------- --------------- -
            ----- ------ - -----------
            ----- -------- - -----------------------
            -- ----------- -
                ------ - --------- -- --
            -
            ----- --- - - --------- -- --
            --- ------ ---- -- --------- -
                ------------------- ------- ------------ ------ ---------- ---
            -
            ------ ----
        -
    -
  • 在应用启动时,使用TsbufModule注册控制器和服务:

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

接下来,就可以启动应用并使用相应的grpc-client调用购物车服务了!

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600672e30520b171f02e1d97


猜你喜欢

  • npm 包 ngx-dynamic-component-loader 使用教程

    随着前端技术的快速发展,应用程序的复杂度也在不断增加。为了提升开发效率和维护性,动态组件加载成为了前端工程中的重点研究对象。ngx-dynamic-component-loader 就是这方面的一个 ...

    4 年前
  • npm 包 @pefish/js-coin-itgc 使用教程

    简介 @pefish/js-coin-itgc 是一个使用 TypeScript 编写的库,可以快速生成一个 ITGC/Internal Control Checklist(ITGC/内部控制清单)。

    4 年前
  • npm 包 connectia 使用教程

    1. 前言 在现代 Web 开发中,前端与后端的分离已经成为一种趋势。前端负责展示数据给用户,后端负责处理数据。但是,有时候前端需要发送一些请求给后端,而这些请求需要与后端进行实时通信。

    4 年前
  • npm 包 smooth-scrollbar-loco 使用教程

    前言 在前端开发中,往往需要自定义样式滚动条。而使用原生的滚动条样式会造成页面美观度的下降。这时候,就需要使用一些优秀的第三方插件来提升页面的美观度和用户体验。本文将介绍 smooth-scrollb...

    4 年前
  • npm 包 express-http-codes 使用教程

    前言 在前端开发的过程中,我们经常需要与后端进行数据交互,而 HTTP 状态码是前后端通信的重要部分之一。然而,在实际开发中,当我们需要设置 HTTP 状态码时,常常需要借助于文档或者搜索引擎来查找对...

    4 年前
  • npm 包 express-http-code 使用教程

    前言 在使用 Node.js 开发 Web 应用时,我们经常会使用 Express.js 框架来构建 Web 服务器。在开发过程中,一般会遇到需要返回指定的 HTTP 状态码的情况。

    4 年前
  • npm 包 List2CSV 使用教程

    Npm 是 Node.js 的包管理器,它为 Node.js 开发者提供了很多有用的包。其中一个非常好用的包就是 List2CSV. List2CSV 是一个可以将数据列表转换为 CSV 格式的 np...

    4 年前
  • npm 包 qape-reporter-gitlab 使用教程

    简介 qape-reporter-gitlab 是一个用于将 QApe 自动化测试框架的测试报告发布到 GitLab 项目的 npm 包。GitLab 是一个基于 git 代码管理工具的在线代码仓库管...

    4 年前
  • npm 包 configuration-frontend 使用教程

    简介 近年来随着前端的快速发展,配置文件已成为前端开发过程中不可或缺的一部分。而 npm 包 configuration-frontend 为前端开发人员提供了一种轻松高效的配置文件方案。

    4 年前
  • npm 包 `angular-7-angularfire-2-crud-tutorial` 使用教程

    简介 angular-7-angularfire-2-crud-tutorial 是一个基于 Angular 和 Firebase 的应用程序示例。它演示了如何创建一个基本的 CRUD 应用程序,包括...

    4 年前
  • npm 包 fscrub 使用教程

    什么是 fscrub? fscrub 是一个基于 Node.js 的 npm 包,它可以帮助开发者对文件和字符串内容进行格式化和清理。fscrub 提供了一系列的插件,它们可以帮助开发者快速完整地对代...

    4 年前
  • NPM包 @valevassallo/introduction-translator 使用教程

    随着国际交流的日益频繁,我们在阅读英文技术文献或者与外国团队沟通时必须具备基本的英语能力。但同时,我们也经常会遇到一些专业术语或者语法结构不易理解的情况,这时候一个好用的文献翻译工具就显得尤为必要。

    4 年前
  • npm 包 hyperprov-client 使用教程

    在前端开发中,我们经常需要处理数据的访问和管理问题。而 hyperprov-client 是一个强大的 npm 包,可以帮助我们解决这些问题。本文将介绍如何使用 hyperprov-client 的基...

    4 年前
  • npm 包 lib-export 使用教程

    在前端开发中,我们常常需要使用到一些第三方开源库,这些库一般以 npm 包的形式发布。在使用 npm 包时,我们需要了解该包的导出方式以及如何正确地使用它们。本文将详细介绍一个 npm 包的导出工具—...

    4 年前
  • npm 包 modular-rest-toolkit 使用教程

    前端开发需要经常与后端进行数据交互,而 RESTful API 是当前最流行的接口设计风格之一。为了便于前端开发者使用 RESTful API,我们推荐使用 npm 包 modular-rest-to...

    4 年前
  • npm 包 @xiapx/react-native-mqtt 使用教程

    前言 在开发前端移动端应用时,如何与后端服务器进行数据交互是一个关键的问题。而 MQTT 是一种轻量级的消息传输协议,可以实现设备之间的数据通讯,也适用于应用与服务器之间的通讯。

    4 年前
  • npm 包 react-parabola 使用教程

    在前端开发中,动画效果的运用可以给用户带来很好的交互体验。react-parabola 是一个基于 React 的 npm 包,它可以让你轻松实现二维平面上的抛物线运动动画效果。

    4 年前
  • npm 包 t-table 使用教程

    前言 在前端开发中,经常需要展示表格数据,常常需要写一些繁琐的 HTML 和 CSS 代码。而使用 npm 包 t-table 可以简化这一过程,从而提高开发效率。

    4 年前
  • npm 包 react-trivial-timeline 使用教程

    React Trivial Timeline 是一个 React 组件库,它是用于展示时间线和事件的轻量级组件。有了它,你可以轻松地创建一个漂亮的时间线,让用户更好地理解时间序列。

    4 年前
  • npm 包 stock-technical-indicators 使用教程

    在股票市场中,技术分析是一种久经考验的方法,可以帮助投资者预测股票价格的走势。在前端开发中,利用股票的历史价格数据进行技术分析可以实现一些有趣的web应用。本教程将介绍一款名为 stock-techn...

    4 年前

相关推荐

    暂无文章