0

我使用具有内部操作的自定义 mixins。

我在自己的操作上使用中间件。

但是 mixins 的操作属于中间件。

需要使用一些鸭子类型检查来忽略中间件中的混合操作。

分子-io 的示例:

if (action.name === 'io.call') {
  return next(ctx);
}

是否存在更安全和健壮的方法来检查中间件中的 mixin 操作?

4

1 回答 1

1

更好的方法是在动作定义中使用自定义属性并在中间件中检查它。

在混合:

actions: {
    find: {
        myFeature: true,
        handler(ctx) {}
    }   
}

在中间件中:

{
    localCall(next, action) {
        if (action.myFeature) {
            // ...
        }

        return next;
    }
}
于 2019-04-04T06:57:48.283 回答