簡體   English   中英

如何在Feathers.js中使用鈎子工作

[英]How does pluck hook work in feathersjs

在feathersjs文檔中,提供的解釋如下:

pluck從提交的數據或結果中丟棄除指定字段以外的所有字段。 如果數據是數組或分頁的查找結果,則該鈎子將刪除每個項目的字段。

import _pluck from '../common/_pluck'; 
import checkContextIf from './check-context-if'; 
import getItems from './get-items'; 
import replaceItems from './replace-items'; 

export default function (...fieldNames) { 
  return context => { 
    checkContextIf(context, 'before', ['create', 'update', 'patch'], 'pluck'); 
    if(context.params.provider) { 
      replaceItems(context, _pluck(getItems(context), fieldNames)); 
    } 

    return context; 
  }; 
} 

getItems實用程序根據hook是用作hook之前還是之后,返回hook.data或hook.result中的項目。 將為搜索方法返回hook.result.data或hook.result。

返回的項目始終是一個數組,以簡化進一步的處理。

replaceItems實用程序與getItems相反,返回它們來自的項目。

我的問題與checkContextIf函數有關。 此函數可防止在create,update和patch方法之前調用除鈎。 然后,puck鈎子如何處理查詢結果。 服務調用之后是否產生結果並在事后掛鈎中處理?

如文檔所述:

getItems實用程序根據hook是用作hook之前還是之后,返回hook.data或hook.result中的項目。

hook.data是隨createpatchupdate請求發送的數據(主體),因此可用於省略您不想保存到數據庫的字段。 hooks API中也有記錄:

  • data -請求數據(用於createupdatepatch

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM