npm 包 objection-visibility 使用教程

阅读时长 3 分钟读完

简介

Objection-visibility 是一个 Node.js ORM(Object Relational Mapper) 库,它提供了一种简单的方式处理表数据,但是它默认情况下不支持类似关系数据库中 SELECT 语句的 GROUP BY 子句,所以 objection-visibility 库就被创建了。

安装

可以使用 npm 安装该包:

基础用法

objection-visibility 主要提供了一个方法 visible 来定义一个 Model 的属性可见性,只有指定的属性会被返回,例如以下的代码,它只显示 displayName, idemail

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

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

在使用 select 查询时,只会返回这些属性的值:

深层用法

除了 visible 方法之外,还提供了 invisible 方法来定义不可见的属性。另外,您可以为每个属性定义一个可见性回调函数,该函数接受一个上下文对象,并且允许你屏蔽整个属性,例如:

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

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

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

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

    ------ ---
  -

  ------ --- ------------ -
    ------ -
      ----- ---------
      ----------- -
        --------- - ----- -------- --
        --- - ----- --------- --
        ------ - ----- -------- --
        ------------ - ----- -------- -
      -
    --
  -
-
  • visible 定义哪些属性是可见的。
  • invisible 定义哪些属性是不可见的。
  • visibleIf 定义一个回调函数,只有在特定条件下属性才会可见。

在上面的示例中,password 属性被定义为不可见的,displayName 属性被定义为可见的,当 currentUser 是管理员或 owner 的 ID 与 currentUser 的 ID 相同时,email 属性也可见。

结论

objection-visibility 的主要作用是提供了数据属性的可见性方法,不仅如此,还提供了回调函数的类型判断,大大提升了开发人员的效率和代码可读性。虽然它的使用方法看起来有些复杂,但只要掌握一定的方法和技巧,就很容易使用。

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