npm 包 egg-qversion 使用教程

阅读时长 4 分钟读完

简介

在前端开发的过程中,经常需要在多个版本间切换,此时我们需要一个方便的工具能够帮助我们控制不同版本的发布或回滚。egg-qversion 是一个实现多版本控制的 eggjs 插件,可以方便地对多个版本的请求进行控制。

安装

首先,在 egg-init 初始化的项目中,执行以下命令安装 egg-qversion

接下来,在 config/plugin.js 中增加以下内容:

使用

config/config.default.js 中,增加以下配置:

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

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

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

  -- ---

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

版本列表

versionList 是一个数组,其中存放可以控制的版本信息,此处我们定义了三个版本 v1v2v3

默认版本

defaultVersion 是默认的版本,如果用户在请求时没有指定版本号,则默认采用该版本。

版本控制参数名

paramName 是版本控制的参数名,对于请求来说,paramName 就是对应的参数,我们可在请求时通过该参数控制请求的版本。

在我们添加完以上配置项后,在控制器中及中间件中可以通过 ctx.version 的方式获取当前接口的版本号。

代码示例

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

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

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

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

在上面的示例代码中,我们定义了一个中间件 versionControl,它负责从 queryheader 或者 qversion 中获取版本信息,并将版本信息保存在 ctx.version 中,然后将该中间件应用到了 HomeController 中。接下来的 HomeController 控制器中,我们再次取出 ctx.version 的值,并用其作为响应内容返回给前端。

指定版本号

我们可以通过以下两种方式来指定版本号:

查询参数

通过查询参数的方式,在请求时指定版本号:

Headers

通过请求头的方式,在请求时指定版本号:

总结

egg-qversion 插件可以非常方便地在 eggjs 框架中进行多版本控制,此外还支持版本号在请求中的多种方式,并且使用非常简单。掌握了这个插件,对于在日常前端开发中进行多版本控制会变得非常简单。

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

纠错
反馈