FeathersJS在挂钩前获取记录或在挂钩后保存记录

时间:2020-03-07 06:44:32

标签: feathersjs

我正在尝试弄清楚如何获取“前”“补丁”挂钩中存在的记录,或者如何将记录保存在“后”“补丁”挂钩中,无论哪种解决方案都对我有用找不到解决方法。有人有任何解决方法吗?

我正在考虑采用这种方法->

 module.exports = function() {
   return async function (context) {
     let why = await context.app.service('transactions').get(context.id);
     console.log(why);
     return context;
   };
 };

但是,此解决方案返回此->无法读取未定义的属性'_id'

自昨晚以来,我一直在不停地玩这个游戏,而此时我的想法不高。

此时,我能看到的唯一方法是在钩子之后从补丁中调用UPDATE钩子,但是我正在寻找一个更干净的解决方案。

1 个答案:

答案 0 :(得分:1)

该问题与我调用已具有权限的GET挂钩有关,因此没有找到它。 //解决方案是将其包装在commonHooks.isProvider('external')周围。

get: [
  commonHooks.iff(
    commonHooks.isProvider('external'),
    checkPermissions({
      roles: ['admin'],
      field: 'permissions',
      entity: 'accounts',
      error: false
    }),
    context => {
      if(!context.params.permitted){
        context.params.query = {
          $or: [
            { 
              bidAccountId: context.params.accounts['_id']
            }, 
            {
              offerAccountId: context.params.accounts['_id']
            }
          ]
        };
      }
    }
  ),
],