[英]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
是隨create , patch或update請求發送的數據(主體),因此可用於省略您不想保存到數據庫的字段。 在hooks API中也有記錄:
data
-請求數據(用於create
,update
和patch
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.